Redis 是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件MQ。它支持多种类型的数据结构,如字符串(Strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)与范围查询,bitmaps、hyperloglogs和地理空间(geospatial)索引半径查询。redis内置了复制(replication)、LUA脚本(Lua scripting)、LRU驱动 事件(LRU eviction),事务(transaciotns)和不同级别的磁盘持久化(persistence),并通过redis哨兵(sintinel)和自动分区(Cluster)提供高可用性(high availability)。

127.0.0.1:6379> keys *   # 查看数据库所有的key
(empty list or set)
127.0.0.1:6379> set name gx  # 设置 key
OK
127.0.0.1:6379> get name     # 获取key的值
"gx"
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> exists name  # 判断该key是否存在
(integer) 1
127.0.0.1:6379> exists age
(integer) 0
127.0.0.1:6379> expire name 10  # 设置key失效时间(秒)
(integer) 1
127.0.0.1:6379> ttl name  # 查看key有效的剩余时间
(integer) 4
127.0.0.1:6379> ttl name
(integer) 0
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> set name gx
OK
127.0.0.1:6379> type name  #查看key的类型
string
127.0.0.1:6379> 

String(字符串)

127.0.0.1:6379> set k1 v1  #设置值
OK
127.0.0.1:6379> get k1      #获取值
"v1"
127.0.0.1:6379> keys *      #查看所有key
1) "k1"
127.0.0.1:6379> exists k1   #判断某个key是否存在
(integer) 1
127.0.0.1:6379> exists k2
(integer) 0
127.0.0.1:6379> append k1 " hello"  #追加字符串 如果当前key不存在,则相当于 set key
(integer) 8
127.0.0.1:6379> strlen k1  #获取字符串的长度
(integer) 8
127.0.0.1:6379> get k1
"v1 hello"
127.0.0.1:6379> set views 1   #设置初始值
OK
127.0.0.1:6379> get views   #获取值
"1"
127.0.0.1:6379> incr views  #自增1,如果key不存在,新建一个key
(integer) 2
127.0.0.1:6379> get views
"2"
127.0.0.1:6379> incrby views 5  #指定步长,设置增量 如果key不存在,则新建一个key
(integer) 7
127.0.0.1:6379> get views
"7"
127.0.0.1:6379> decr views  #自减1 如果key不存在,新建一个key
(integer) 6
127.0.0.1:6379> decrby views 3  #指定步长,设置减量,如果key不存在,则新建一个key
(integer) 3
127.0.0.1:6379> get views
"3"
127.0.0.1:6379> set k1 "hello welcome to china"   #设置值
OK
127.0.0.1:6379> get k1    #获取值
"hello welcome to china"
127.0.0.1:6379> getrange k1 0 3  #截取字符串  [0,3]
"hell"
127.0.0.1:6379> getrange k1 0 -1 #获取全部字符串 相当于 get key
"hello welcome to china"
127.0.0.1:6379> setrange k1 0 nihao  #替换指定位置的字符串
(integer) 22
127.0.0.1:6379> getrange k1 0 -1
"nihao welcome to china"
127.0.0.1:6379> setex name 10 tom   #设置key 并设置失效时间
OK
127.0.0.1:6379> ttl name   #查看key剩余的有效时间
(integer) 4
127.0.0.1:6379> get name  
(nil)
127.0.0.1:6379> setnx name tom   #如果key不存在,则创建key
(integer) 1
127.0.0.1:6379> get name
"tom"
127.0.0.1:6379> setnx name jerry  #如果key存在,则创建key失败
(integer) 0
127.0.0.1:6379> get name
"tom"
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3   #设置多个值
OK
127.0.0.1:6379> mget k1 k2 v3    #获取多个值 如果key不存在,则返回nil
1) "v1"
2) "v2"
3) (nil)
127.0.0.1:6379> msetnx k1 kk1 k4 v4  #msetnx 是一个原子性的操作,要么一起成功,要么一起失败
(integer) 0
127.0.0.1:6379> get k4
(nil)
127.0.0.1:6379> clear   #清空屏幕
127.0.0.1:6379> getset db redis  #先获取值再设置值,如果key不存在,则返回nil
(nil)
127.0.0.1:6379> getset db mysql  #先获取值再设置值,如果key存在,则返回原来的值
"redis"
127.0.0.1:6379> get db
"mysql"
127.0.0.1:6379> mset user:1:name tom user:1:age 20  #设置一个对象值
OK
127.0.0.1:6379> keys *
1) "user:1:age"
2) "user:1:name"
127.0.0.1:6379> mget user:1:name
1) "tom"
127.0.0.1:6379> mget user:1:age
1) "20"
127.0.0.1:6379> mget user:1:name user:1:age  #获取一个对象值
1) "tom"
2) "20"

 String类似的使用场景:value除了字符串还有数字

  • 计数器
  • 统计多单位的数量
  • 粉丝数
  • 对象缓存存储
 posted on 2020-11-19 18:32  会飞的金鱼  阅读(112)  评论(0)    收藏  举报