Redis五大数据类型(未完)

redis五大数据类型

Redis五大数据类型(未完)

翻译:

Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库缓存消息代理。它支持数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超级日志,带有半径查询和流的地理空间索引。Redis具有内置的复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供高可用性。

redis-key

127.0.0.1:6379> flushallOK127.0.0.1:6379> keys *(empty array)127.0.0.1:6379> set name crowned OK127.0.0.1:6379> set age 18OK127.0.0.1:6379> keys *1) "age"2) "name"127.0.0.1:6379> exists name  #查询是否存在(integer) 1127.0.0.1:6379> exists name1(integer) 0127.0.0.1:6379> move name 1 #移动key(integer) 1127.0.0.1:6379> keys *1) "age"127.0.0.1:6379> set name crownedOK127.0.0.1:6379> get name"crowned"127.0.0.1:6379> expire name 10 #设置key的过期时间(integer) 1127.0.0.1:6379> ttl name #查看当前key的剩余时间(integer) 6127.0.0.1:6379> ttl name(integer) 3127.0.0.1:6379> ttl name(integer) 2127.0.0.1:6379> ttl name(integer) 1127.0.0.1:6379> ttl name(integer) -2127.0.0.1:6379> get name(nil)127.0.0.1:6379> keys *1) "name"2) "age"127.0.0.1:6379> type name #查看当前key的类型string127.0.0.1:6379> type agestring?

有不会的命令可以在官网查询文档

Redis五大数据类型(未完)

String(字符串)

127.0.0.1:6379> strlen name #获取字符串的长度(integer) 7127.0.0.1:6379> append name hello #追加字符串,如果当前key不存在,就等于set key(integer) 12127.0.0.1:6379> get name"crownedhello"######################################127.0.0.1:6379> set views 0 #初始量为0OK127.0.0.1:6379> get views"0"127.0.0.1:6379> incr views #自增1(integer) 1127.0.0.1:6379> get views"1"127.0.0.1:6379> incr views(integer) 2127.0.0.1:6379> get views"2"127.0.0.1:6379> decr views #自减1(integer) 1127.0.0.1:6379> get views"1"127.0.0.1:6379> incrby views 10 #设置步长 指定增量(integer) 11127.0.0.1:6379> get views"11"127.0.0.1:6379> decrby views 5(integer) 6127.0.0.1:6379> get views"6"##############################################字符串范围 range127.0.0.1:6379> set key1 hello,crowned #设置key1的值OK127.0.0.1:6379> get key1"hello,crowned"127.0.0.1:6379> getrange key1 0 3 #截取字符串"hell"127.0.0.1:6379> getrange key1 0 -1 #获取全部字符串 等于get key"hello,crowned"127.0.0.1:6379> #################################127.0.0.1:6379> set key2 abcdefgOK127.0.0.1:6379> get key2"abcdefg"127.0.0.1:6379> setrange key2 1 xx #替换指定位置开始的字符串(integer) 7127.0.0.1:6379> get key2"axxdefg"######################################## setex (set with expire) 设置过期时间# setnx (set if not exist) 不存在再设置(再分布式锁中常常使用)127.0.0.1:6379> setex key1 10 hello #设置key1的值为hello,10秒后过期OK127.0.0.1:6379> ttl key1(integer) 6127.0.0.1:6379> get key1(nil)127.0.0.1:6379> setnx key2 redis #如果不存在key2 就创建key2(integer) 1127.0.0.1:6379> keys *1) "key2"127.0.0.1:6379> ttl key1(integer) -2127.0.0.1:6379> setnx key2 mongodb #如果key2存在 就创建失败(integer) 0127.0.0.1:6379> get key2"redis"######################################127.0.0.1:6379> keys *(empty array)127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 #同时设置多个值OK127.0.0.1:6379> keys *1) "k3"2) "k2"3) "k1"127.0.0.1:6379> mget k1 k2 k3   #同时获取多个值1) "v1"2) "v2"3) "v3"127.0.0.1:6379> msetnx k1 v1 k4 v4 #msetnx是一个原子性操作,要么一起操作,要么都失败(integer) 0127.0.0.1:6379> get k4(nil)127.0.0.1:6379> #############################################设置对象set user:1{name:zhangsan,age:3} #设置一个user:1对象 值为json字符来保存一个对象#这里的key是一个巧妙地设计: user:{id}:{filed} 这个设计在redis中是ok的127.0.0.1:6379> mset user:1:name crowned user:1:age 18OK127.0.0.1:6379> mget user:1:name user:1:age1) "crowned"2) "18"#########################################getset 先get再set127.0.0.1:6379> getset redis mongodb #如果不存在值,则返回nil(nil)127.0.0.1:6379> get redis

相关推荐