关于key的操作,Redis中主要的是k-v的存储模式,
5种数据结构:
1,string(字符串),
2,list(有序集合,可重复),
3,set(无序集合,去重),
4,zset(有序集合并去重,默认有一个分数,主要做排行榜之类的,存进去的数据,默认按升序排序)
5,hash主要存放对象
常用命令:
1,查看所有的key
keys * :查看Redis中的所有key
keys ?:?只占一个字符
key [] : 只能在[]中找,
2,key是否存在:
exists key(存进去的key)
3,存数据,取数据
set k v 例如:set username 张三
get k 例如:get username ,返回:张三
4,查看指定key的存活时间:ttl key
如果当前库不存在,返回-2
如果key没有设置过期时间 返回-1,即永远不过期
5,设置key的过期时间:
expire key seconds(单位是秒) 例如:expire k1 20(k1是key,20秒是生存时间)
6,查看指定key的数据类型 type key
7,重命名key
rename key newkey 例如:rename k1 k2 (k1是之前的key,k2是新key)
8,删除key
del key 删除指定key,返回值是实际删除的key的数量,可以多删,key之间空格隔开
例如:del k1 k2 k3.。。。
Redis中有关string的操作命令
1,讲string类型的数据保存到redis
set 键 值 例如:set zsname 张三 , 如果key已存在,会把之前的value覆盖掉
2,从redis获取值
get zsname 返回张三
3,string的追加,append key value,如果key不存在,则创建一个新的value
set phone 1390000 ,例如append phone 8888
get phone 返回13900008888
4,获取字符串的长度 ,strlen key
5,将字符串数值进行加1运算 incr key
返回加1之后的数据,
如果key不存在,首先设置一个key,值初始化为0,然后进行加1运算
要求key必须是数值,否则报错
6,将字符串数值进行减1运算 decr key 跟5雷同
7,将字符串数值进行加法运算 incrby key 10
10为要加的数值,例如,set age 10,incrby age 5 ,get age = 15
如果key不存在,首先设置一个key,值初始化为0,然后进行加1运算
要求key必须是数值,否则报错
8,将字符串数值进行减法运算 decrvy key 跟7雷同
9,获取字符串中的子字符串 getrange key startindex endindex
startindex :开始下标,,endindex 结束字符(从0开始,依次往后,最后一个字符的下标是长度-1,含头含尾,
不会影响数据库的数据
下标有可能为负数,如果为负数,-1表示最后一位的下标,例如,“zhangsan”,最后一位n的下标可以是7,也可以是-1)
10,setrange 改变字符串 setrange key startIndex value,能覆盖几个字符,就覆盖几个字符
11,设置字符串的同时,设置生命周期 setex
setex key seconds value
set k1 20 v2
12,setnx (not expire)设置string的数据value到redis,key不存在则设置,存在则放弃设置
13,批量将string放到redis,mset
mset k v k1 v1 k2 v3.。。。批量insert
14,批量获取mget
15,msetnx 批量设置的时候,当所有key都不存在时,执行成功,否则(只要有一个存在),全部放弃
redis中关于列表的操作命令
单key,多有序value
1,lpush key value v2 v3 v4(向列表中添加数据,最左侧是表头,最右侧是表尾)
例如:lpush list01 v v1 v2 v3 结果:v3 v2 v1 v
2,获取指定列表中的指定下标区间元素 lrange key startIndex endIndex
lrange list01 0 -1
3,将多个值插入表尾(右侧)rpush key(向列表中添加数据,最右侧是表头,最左侧是表尾)
4,从指定列表中移除并且返回表头元素 lpop key
lpop list02 (删除最左元素,第一个元素)
5,从指定列表中移除并且返回表尾元素 rpop key
lpop list02 (删除最右元素,第一个元素)
6,获取列表中指定下标的元素
lindex key index 例如:lindex list02 2
7,获取指定列表的元素 llen key
例如:llen list02
8,移除列表中某一些数据 lrem key count value(count = 0,移除列表中跟value一样的数据)