Redis系列 ——命令总结

Redis命令总结

1.查看所有key值

keys *

2.删除key,支持批量删除

del key1 key2...   //返回的结果是成功的个数

3.返回序列化的值

dump key

4.返回key是否存在

exists key1 key2...  //返回存在的个数

5.设置、取消过期时间(单位:秒、毫秒)

expire key seconds
pexpire key milliseconds

取消
persist key

使用场景:

1 、 限 时 的 优 惠 活 动 信 息 \color{red}{1、限时的优惠活动信息} 1
2 、 网 站 数 据 缓 存 \color{red}{2、网站数据缓存} 2
3 、 手 机 验 证 码 \color{red}{3、手机验证码} 3
4 、 限 制 网 站 访 客 访 问 频 率 \color{red}{4、限制网站访客访问频率} 4访访

6.返回key的剩余生存时间(单位:秒、毫秒)

ttl key	  //秒,永久返回-1,key不存在返回-2
pttl key  //毫秒

**7.添加key-value,取值 s e t n x 是 解 决 分 布 式 锁 的 方 案 \color{red}{setnx是解决分布式锁的方案} setnx **

set <key> <value>

setnx <key> <value> //当key不存在的时候,为key赋值

get key

8.查找key

keys pattern(通配符)
*代表查询所有   ?代表一个符号

9.随机返回key

randomkey

10.修改key的名称

rename key newkey

11.返回key的类型

type key

12.从当前数据库移动key到指定数据库中

move key db

13.切换数据库

select [index]

14.截取字符串

getrange key start end   //包括start end在内

15.获取并赋值key的值

getset key value   //若key不存在,则返回nil;若存在,返回key的值并修改

strlen key //查看长度

16.自增自减 ( 具 有 原 子 性 ) \color{red}{(具有原子性)}

incr key [增量]  //执行增量操作,如果不存在则赋值0再加一

decr key [减量]

17.字符串拼接

append key value  //如果存在,就添加到最后

关于Hash的命令

  Redis hash是一个string类型的field和value的映射表, hash特别适合用,于存储对象, Redis中每个hash可以存储232-1键值对(40多亿)可以看成具有KEY和VALUE的MAP容器,该类型非常适合于存储值对象的信息,该类型仅占据很少的内存空间(相比于JSON)。

1.赋值语法,可以一次赋值多个属性

hset key field value [field2 value2]  //为指定的key设定field/value

hmset key field value [field2 value2]

2.hash取值

hget key field  //根据field取值

hmget key field [field2]  //根据field取一系列的值

hgetall key  //获取所有字段和值

3.获取hash中的字段

hkeys key   //获取hash表中的字段

hlen key   //返回字段的数量

4.删除语法

hdel key field1 [field2]   //删除一个或多个字段

Hash的应用场景(存储一个用户信息对象数据)

1、常用于存储一个对象
2、 为什么不用string存储一个对象?
  hash是最接近关系数据库结构的数据类型,可以将数据库一条记录或程序中一个对象转换成hashmap存放在redis中。用户ID为童找的key,存储的value用户对象包含姓名,年龄,生日等信息,如果用普通的key/value结构来存储,主要有以下2种存储方式:
  第一种方式将用户ID作为董找key,把其他信息封菜成一个对象以序列化的方式存储,这种方式的缺点是,增加了序列化/反序列化的开销,并且在需要修改其中一项信息时,需更把整个对象取回,并且修改操作需要对并发进行保护,引入CAS等复奈问题。
  第二种方法是这个用户信息对蒙有多少成员就存成多少个key-value对儿,用用户ID+对应属性的名称作为唯一标识来取得对应属性的值,虽然省去了序列化开销和并发问题,但是用户ID为重复存储,如果存在大量这样的数据,内存浪费还是非常可观的。总结:Redis提供的Hash很好的解决了这个问题, Redis的Hash实际是内部存储的Value为一个HashMlap,并提供了直接存取这个Map成员的接口.

你可能感兴趣的:(redis)