redis

来源:互联网 发布:人工智能柴玉梅版答案 编辑:程序博客网 时间:2024/05/17 07:19

1、redis介绍:
高性能的kv存储系统,用来存储字符串,哈希结构,链表,集合,用来提供数据结构服务。
可以同步持久化数据,隔一段时间可以把数据存储到磁盘上,有两种存储格式 aof和rdb格式,aof记录的是语句,rdb记录的是数据,默认端口6379

redis默认划分有16个小仓库,编号0~15,默认进入0号仓库,可以通过配置文件redis.conf更改select 1  #选择1号仓库

2、key的通用操作
set k v #设置一个键值对
mset k1 v1 k2 k2 … #一次设置多个键值对
set k v [ex 秒]/[px 毫秒] [nx]/[xx] #设置一个kv时带参设置生命时长,nx(k不存在时执行操作) xx(k存在时执行操作)
get k #用k获取对应的v
mget k1 k2 … #一次获取多个k的v
del k1 k2 … kn #删除一个或多个键,返回值不存在的k忽略掉,返回真正删除的k的数量
rename k newk #更改k为newk
keys * #获取所有的k
keys n* #获取n开头的所有k
randomkey #随机返回一个k
exists k #判断k是否存在,返回:1(存在),0(不存在)
type k #获取一个k的类型
expire k seconds #设置k的生命时长
set k v ex seconds #设置一个kv时带参设置生命时长
ttl k #查询k剩余的时长 返回:-2(失效或者不存在) -1(不自动失效)正整数(剩余的秒数)
persist k #讲一个k设置成永久有效

3、string操作
setrange k offset v
作用:把k对应的字符串的第offset个字符改成v
getrange k begin end
作用:相当于java中的subString(begin,end)
append k v #把v追加到k对应的原v后
incr k #把k对应的值加1,并返回+1后的值
decr k #把k对应的值减1,并返回-1后的值

3、list链表操作
lpush k v #把v插入到链的头部
rpush k v #把v插入到链的尾部
lrange k begin end #返回链表k从begin到end的数据
lrange k 0 -1 #获取所有的链表数据
lpop k #返回链表最左边的数据并删除
rpop k #返回并删除链表尾元素
lrem k count v #从k链表中删除conut个v值 count>0从表头删除,count<0从表尾删除
lindex k conut #返回k链表索引为count的值
llen k #返回链表的长度

4、set集合操作
sadd k v1 v2 … #添加
sismenber k v #判断v是否在集合v中
sinter v1 v2 … #求多个集合中交集
sunion v1 v2 … #求多个集合中并集
sdiff v1 v2 #求v1-v2的差集

5、order set有序集合
zadd key score1 value1 score2 value2 … #添加元素
zcard key #返回元素的个数
zcount key min max #fanhui score在[min max]区间元素的数量
zrank key member #查询member的排名 正序
zrevrank key member #查询member的排名 倒数
zrange key n1 n2 #返回第n1倒n2的元素

6、hash操作
hset key field value
作用:把key中field字段的值设为value
注:如果没有field就直接添加,如果有就覆盖value
hgetall key #返回key中所有的字段和值
hget ket field #返回key中field的值
hget ket field1 field2 … #
hkeys key
hlen key
hvals key
hdel key field

7、flush命令(慎用)
flushdb #删除当前仓库下的所有数据
flushall #删除所有仓库的数据

8、scan命令