Redis 常用操作

一、key的操作

1、注:在redis里面,“\”和空格不能作为key的组成内容。

2、相关指令:

exists key测试指定key是否存在
del key1 key2...删除指定key
type key返回指定key的value类型
keys pattern返回匹配指定模式的所有key,pattern是通配符
 rename oldkey newkey 修改key的名字
 dbsize 返回当前数据库的key数量
 expire key seconds 为key指定过期时间
 ttl key 返回key的剩余过期秒数
 select db-index 选择数据库
 move key db-index 将key从当前数据库移动到指定数据库
 flushdb 删除当前数据库中的所有key
 flushall 删除所有的数据库的所有key

二、String类型的操作

1、注:

  ①String是redis最基本的类型

  ②redis的string可以包含任何数据,包括jpg图片或者序列化的对象

  ③单个value的最大上线是1G

  ④如果只用String类型,redis就可以被看作是加上持久化特性的memcache

2、相关指令:

set key value设置key对应的值为String类型的value
mset key1 value2...keyN valueN...   一次性设置多个key的值
mget key1 key2...keyN...一次获取多个key的值
incr key

对key的值作加加操作,并返回新值。

注意:如果是操作新key:创建该key并加1,其值为1;如果是操作已有key:其值的类型必须为整型

decr key 对key的值作减减操作,并返回新值。
 incrby key number 增加指定值,并返回新值
 decrby key number 减去指定值,并返回新值
 append key value 给指定key的字符串追加value
 substr key start end 截取指定key的字符串

三、list链表类型

1、list类型其实就是一个双向链表。通过push、pop操作从链表的头部或尾部添加删除元素。这使得list既可以用作栈,又可以用作队列。

2、该list链表应用场合:

例如:获得10个最新的登录用户信息

select * from user order by login_time desc limit 5;

以上sql可以实现用户需求,但是数据多的时候,全部数据都要受到影响,对数据库的负载也比较高。必要情况还要给关键字段(如login_time)设置索引,索引也比较耗费系统资源。

如果通过list链表实现以上功能,可以在list链表中只保留最新的5个数据,每进来一个数据就删除一个旧数据。每次就可以从链表中直接获取需要的数据,极大节省各方面的资源消耗。

3、相关指令

lpush key string在key对应的list的左边添加字符串元素
lpop key弹出左部元素,并返回该元素
rpush key string在key对应的list的右边添加字符串元素
rpop key 弹出右部元素,并返回该元素
 llen key 返回list对应的长度,key不存在返回0,key对应的类型不是list返回错误
 lrange key start end 返回指定区间的元素
 ltrim key start end 截取list,保留指定区间内的元素

四、set集合类型

1、注:

  ①redis的set是string类型的无序集合

  ②set元素最大可以包含(2的32次方-1)个元素

  ③set集合类型除了基本的添加删除操作,其他有用的操作还包含取并集、交集、差集。

  ④每个集合的各个元素不能重复

2、相关指令

sadd key member添加一个string元素到set集合中,成功返回1
srem key member1 member2...从对应key的set中移除元素
smove key1 key2 member将member从key1对应的set中移动到key2对应的set中
 scard key 返回set中的集合个数
 sismember key member 判断member是否存在set中
 sinter key1 key2...keyN 返回所有给定key的交集
 sunion key1 key2...keyN 返回所有给定key的并集
 sdiff key1 key2...keyN 返回所有给定Key的差集
 smembers key 返回Key对应的set的所有元素,结果是无序的

五、Sorted Set排序集合类型

1、注:

  ①和set一样,Sorted set也是string类型元素的集合

  ②不同的是每个元素都会关联一个权,通过权值可以有序的获取集合中的元素

  ③每个集合的各个元素不能重复

2、适用场合:

如获得热门帖子(回复量)信息。

select * from message order by backnum desc;

以上需求可以通过简单sql实现,但是sql语句耗费数据库资源。

3、相关指令:

zadd key score member添加元素到集合,元素在集合中存在则更新对应score
zrem key member删除指定元素,1表示成功,如果元素不存在则返回0
zincrby key incr member按照incr幅度增加对应member的score值,返回score值
zrank key member返回指定元素在集合中的排名(下标),集合元素是按score从小到大排序的
zrevrank key member同上,但是集合中的元素是按从大到小排序
zrange key start end类型lrange操作从集合中去取出指定区间的元素,返回的是有序结果
zrevrange key start end同上,但是返回的结果是按score逆序的
zcard key返回集合中元素的个数
zcore key element返回给定元素对应的score
zremrangebyrank  key min max删除集合中排名在给定区间的元素(权值由小到大排序)

六、hash类型

1、注:

  ①hash是一个string类型的field和value的映射表

  ②Hash更容易存储对象,比如在设置用户姓名,年龄,邮箱等属性时,用string需要分别来进行设置存储,通过Hash就可以把属性放到对象中,然后再存储对象,因此相对于string类型,Hash类型存储对象可以占用更少的字节

2、常用指令:

hset key field value 设置hash field为指定值,如果key不存在,则先创建
hmset key field1 value1...fieldN valueN同时设置hash的多个field
hget key field获取指定的hash field
hmget key field1...fieldN一次获取多个指定的hash field
hincrby key field integer将指定的hash field加上给定值
hexists key field判断指定field是否存在
hdel key field删除指定的hash field
hlen key返回指定hash的field数量
hkeys key返回hash的所有field
hvals key返回hash的所有value
hgetall key返回hash的所有field和value

转载于:https://www.cnblogs.com/jxl1996/p/10182580.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值