网站建设专业性的评价,石家庄代运营公司,建立门户网站的程序,网站建设服务费记账分录Redis 数据类型
redis无论什么数据类型#xff0c;在数据库中都是以key-value形式保存#xff0c;并且所有的key(键)都是字符串#xff0c;所以讨论基础数据结构都是讨论的value值的数据类型
1. 字符串操作
set key value [ex seconds] [px milliseconds] [nx|xx] 设置ke…Redis 数据类型
redis无论什么数据类型在数据库中都是以key-value形式保存并且所有的key(键)都是字符串所以讨论基础数据结构都是讨论的value值的数据类型
1. 字符串操作
set key value [ex seconds] [px milliseconds] [nx|xx] 设置key及值过期时间可以使用秒或毫秒为单位[ex seconds]是设置过期时间的单位是秒,默认是永不过期[px milliseconds]也是设置过期时间的单位是毫秒[nx|xx]中的nx是当设置变量的变量存在时就不再赋值这个变量了xx是当这个变量存在时赋入新的值。 ex 设置过期时间
//创建key名namekey值bob过期时间为10秒
127.0.0.1:6379 set name bob ex 10
OK
127.0.0.1:6379 ttl name
(integer) 4 ---还剩下四秒就过期了
127.0.0.1:6379 ttl name
(integer) -2 ---已经过期了nx 当没有输入key名就定义存储反之如果有这个key名时就不定义存储数据了
127.0.0.1:6379 set id 88
OK
127.0.0.1:6379 keys *
1) id
127.0.0.1:6379 get id
88
127.0.0.1:6379 set id 99 nx ------返回值是nil意思就是没有存储id这个变量
(nil)
127.0.0.1:6379 get id ---因为id这个key名已经存在所以set id 99 nx操作无效
88
3. xx 意思是不管key名存在不存在都对这个key名进行定义并存储默认就是xx
127.0.0.1:6379 get id --查看id的key值
99
127.0.0.1:6379 set id 100 xx --覆盖key名为id的值为100
OK
127.0.0.1:6379 get id ---查看id的值99改为100
100
setrange key offset value ------从偏移量开始复写key的特定位的值
127.0.0.1:6379 set name bob -----创建key名name,key值bob
OK
127.0.0.1:6379 get name ----查看key名name的值
bob
127.0.0.1:6379 setrange name 2 y -----修改从key值bob的第二个字符开始修改为y,计算是从0开始的。
(integer) 3
127.0.0.1:6379 get name ----查看name的值
boy
127.0.0.1:6379 setrange name 0 andy
(integer) 4
127.0.0.1:6379 get name
andy
strlen key ------统计字符串长度
127.0.0.1:6379 get name
andy
127.0.0.1:6379 strlen name ----查看name值的字符串长度为4
(integer) 4append key value -------key值存在则追加不存在则创建key及value返回key长度
127.0.0.1:6379 get name
andy
127.0.0.1:6379 append name db --在key值为andy的后面添加db这两个字符。
(integer) 6
127.0.0.1:6379 get name ---查看name的值
andydb127.0.0.1:6379 keys *
1) name
2) id
127.0.0.1:6379 append age 28 ----可以看的出来age不存在所以这条命令意思是创建key名agekey值28
(integer) 2
127.0.0.1:6379 get age
28
setbit key offset value ------位存储bitcount key —查询key值为1的数量1T1024G、1G1024M、1M1024K、1K1024字节、1字节8位、1位0或1使用场景 记录网站用户上线频率如用户A上线了多少天等类似的数据 如用户在某天上线则使用setbit以用户名为key将网站上线日为offset并在该offset上设置1最后计算用户总上线次数时使用bitcount用户名即可。 这样即使网站运行10年每个用户仅占用10*365比特位即456字节。 对key所存储的字串设置或清除特定偏移量上的位bitvalue的值可以为1或0offset为0~2^32之间key不存在则创建新的key //假如1位在线天数0代表不在线yy为用户
127.0.0.1:6379 setbit yy 1 1
(integer) 0
127.0.0.1:6379 setbit yy 2 0
(integer) 0
127.0.0.1:6379 setbit yy 3 1
(integer) 0
127.0.0.1:6379 setbit yy 4 1
(integer) 0
127.0.0.1:6379 setbit yy 5 0
(integer) 0
127.0.0.1:6379 setbit yy 6 1
(integer) 0
127.0.0.1:6379 setbit yy 7 1
(integer) 0
127.0.0.1:6379 bitcount yy ---统计用户yy一周在线天数为5
(integer) 5
decr key -----将key中的值减1key不存在则先初始化为0再减1
127.0.0.1:6379 get age
28
127.0.0.1:6379 decr age ---age的值为28-127
(integer) 27
127.0.0.1:6379 get age
27127.0.0.1:6379 decr bb ----当bb不存在时就是0-1-1
(integer) -1
127.0.0.1:6379 get bb
-1
decrby key decrement ---------将key中的值减去decrement。decrement只能为整数
127.0.0.1:6379 get age
27
127.0.0.1:6379 decrby age 2 age值27-225
(integer) 25
127.0.0.1:6379 get age
25
127.0.0.1:6379 decrby age 5 age值25-520
(integer) 20
127.0.0.1:6379 get age
20
incr key --------将key的值加1如果key不存在则初始为0后再加1
127.0.0.1:6379 get age
20
127.0.0.1:6379 incr age age的值加一20121
(integer) 21127.0.0.1:6379 keys *
1) yy
2) bb
3) id
4) name
5) age
127.0.0.1:6379 incr ys ys不存在所以是011
(integer) 1
127.0.0.1:6379 get ys
1
incrby key increment ------将key的值增加increment。decrement只能为整数
127.0.0.1:6379 get age
21
127.0.0.1:6379 incrby age 20 age的值加二十212041
(integer) 41
127.0.0.1:6379 get age
41
incrbyfloat key increment -----为key中所储存的值加上浮点数增量 increment
127.0.0.1:6379 set id 20
OK
127.0.0.1:6379 get id
20
127.0.0.1:6379 incrbyfloat id 0.3 ---id的值加零点三:200.320.3
20.3
127.0.0.1:6379 get id
20.3
getrange key start end
返回字串值中的子字串截取范围为start和end负数偏移量表示从末尾开始计数-1表示最后一个字符-2表示倒数第二个字符
127.0.0.1:6379 set likes Play basketball
OK
127.0.0.1:6379 get likes
Play basketball127.0.0.1:6379 getrange likes 0 3 ---查看likes值的第一个字符到第四个字符默认从0开始算的。
Play127.0.0.1:6379 getrange likes -2 -1 ---查看likes指的倒数第二字符和倒数第一。
ll2. List列表
2.1. List列表简介
Redis的list是一个字符队列先进后出变量中先存进去的值是在最后显示出来的一个key可以有多个值
2.2. List列表命令操作
lpush key value [value…] -----将一个或多个值value插入到列表key的表头key不存在则创建keylrange key start stop ----从开始位置读取key的值到stop结束
127.0.0.1:6379 lpush hostname www.baidu.com www.jd.com www.taobao.com ---创建hostname的值为www.baidu.com、www.jd.com、www.taobao.com
(integer) 3
127.0.0.1:6379 lrange hostname 0 -1 ---查看hostname列表的值从第一个到最后一个。
1) www.taobao.com
2) www.jd.com
3) www.baidu.com
127.0.0.1:6379 lrange hostname 0 1
1) www.taobao.com
2) www.jd.com127.0.0.1:6379 lpush hostname www.jk.com www.sxy.com ---在hostname值追加www.jk.com、www.sxy.com
(integer) 5
127.0.0.1:6379 lrange hostname 0 -1 ---查看hostname所有的值
1) www.sxy.com
2) www.jk.com
3) www.taobao.com
4) www.jd.com
5) www.baidu.comlpop key -----移除并返回列表头元素数据即删除列表中的第一个值key不存在则返回nil
127.0.0.1:6379 lrange hostname 0 -1
1) www.sxy.com
2) www.jk.com
3) www.taobao.com
4) www.jd.com
5) www.baidu.com
127.0.0.1:6379 lpop hostname ---删除hostname第一个值1) www.sxy.com
www.sxy.com
127.0.0.1:6379 lrange hostname 0 -1
1) www.jk.com
2) www.taobao.com
3) www.jd.com
4) www.baidu.com
llen key ----返回列表key值的数量
127.0.0.1:6379 lrange hostname 0 -1
1) www.jk.com
2) www.taobao.com
3) www.jd.com
4) www.baidu.com
127.0.0.1:6379 llen hostname ---查看hostname有多少个值
(integer) 4
lindex key index ----查看key列表的某个值
127.0.0.1:6379 lrange hostname 0 -1
1) www.jk.com
2) www.taobao.com
3) www.jd.com
4) www.baidu.com127.0.0.1:6379 lindex hostname -1 ---查看hostname最后一个值。
www.baidu.com
lset key index value -----修改指定位置的key值
127.0.0.1:6379 lrange hostname 0 -1
1) www.jk.com
2) www.taobao.com
3) www.jd.com
4) www.baidu.com
127.0.0.1:6379 lset hostname -1 www.sxy.com ---修改hostname最后一个值为www.sxy.com
OK
127.0.0.1:6379 lrange hostname 0 -1
1) www.jk.com
2) www.taobao.com
3) www.jd.com
4) www.sxy.com
rpush key value [value…] —在key值的最后面插入一个或者多个值
127.0.0.1:6379 lrange hostname 0 -1
1) www.jk.com
2) www.taobao.com
3) www.jd.com
4) www.sxy.com
127.0.0.1:6379 rpush hostname AAAA BBBB CCCC
(integer) 7
127.0.0.1:6379 lrange hostname 0 -1
1) www.jk.com
2) www.taobao.com
3) www.jd.com
4) www.sxy.com
5) AAAA
6) BBBB
7) CCCC
rpop key — 删除key值的末尾的值
127.0.0.1:6379 lrange hostname 0 -1
1) www.jk.com
2) www.taobao.com
3) www.jd.com
4) www.sxy.com
5) AAAA
6) BBBB
7) CCCC
127.0.0.1:6379 rpop hostname
CCCC
127.0.0.1:6379 lrange hostname 0 -1
1) www.jk.com
2) www.taobao.com
3) www.jd.com
4) www.sxy.com
5) AAAA
6) BBBB
3. Hash表
3.1. Hash表介绍 是一个string类型的field和value的映射表 一个key可对应多个field一个field对应一个value 将一个对象存储为hash类型较于每个字段都存储成string类型更能节省内存
3.2. Hash表命令操作
hset key field value ----将hash表中field值设置为value一次给一个或多个列赋值hget key field -----获取hash表中field的值hmget key field [field …] ----获取hash表的一个列名值和多个列名值hgetall key ----获取hash表中的所有列名和列值hkeys key ----获取hash表中的所有列名hvals key ----获取hash表中的所有列值hdel key field [field …] ----删除hash表的一个列名的值和多个列名的值
127.0.0.1:6379 hset stuinfo name bob sex boy age 18 ---创建hash表名为stuinfo,列名名name 列值bob,列名sex 列值boy,列名age 列值18
(integer) 3127.0.0.1:6379 hget stuinfo name ---查看hash表名stuinfo,列名name的值
bob127.0.0.1:6379 hmget stuinfo name sex age ---获取hash表stuinfo的列名为:name、sex、age的值
1) bob
2) boy
3) 18
127.0.0.1:6379 hgetall stuinfo ---获取hash表stuinfo的所有列名和列值
1) name
2) andy
3) sex
4) boy
5) age
6) 18127.0.0.1:6379 hkeys stuinfo ---获取hash表stuinfo的所有列名
1) name
2) sex
3) age127.0.0.1:6379 hvals stuinfo ---获取hash表stuinfo的所有列值
1) andy
2) boy
3) 18127.0.0.1:6379 hkeys stuinfo
1) name
2) sex
3) age
127.0.0.1:6379 hdel stuinfo name sex ----删除hash表stuinfo的列名为name、sex和值
(integer) 2
127.0.0.1:6379 hkeys stuinfo
1) age