Redis常用五大数据www.hj8828.cc类型分享
详细命令集,请点击此处
1.String(字符串)
string是redis最基本的类型,一个key对应一个value string类型是二进制安全的,意思是redis的string可以包含任何数据,如jpg图片或者序列化的对象。 string类型是redis最基本的数据类型,一个redis中字符串value最大允许512m
常见指令
1 set/get/del/append/strlen
set:设置键值 get:由键得到值 del:删除键值 append:为对应键的值后面添加数据 strlen:由键得到值的长度
127.0.0.1:6379> set k1 k1
OK
127.0.0.1:6379> get k1
"k1"
127.0.0.1:6379> get k1
"k1"
127.0.0.1:6379> key *
(error) ERR unknown command 'key'
127.0.0.1:6379> KEYS *
1) "k1"
127.0.0.1:6379> del k1
(integer) 1
127.0.0.1:6379> KEYS *
(empty list or set)
127.0.0.1:6379> set k1 123
OK
127.0.0.1:6379> append k1 456
(integer) 6
127.0.0.1:6379> get k1
"123456"
127.0.0.1:6379> strlen k1
(integer) 6
2 incr/decr/incrby/decrby
incr:值加一 decr:值减一 incrby:值增加指定大小 decrby:值减少指定大小
127.0.0.1:6379> set k2 1
OK
127.0.0.1:6379> INCR k2
(integer) 2
127.0.0.1:6379> INCR k2
(integer) 3
127.0.0.1:6379> INCR k2
(integer) 4
127.0.0.1:6379> DECR k2
(integer) 3
127.0.0.1:6379> DECR k2
(integer) 2
127.0.0.1:6379> DECR k2
(integer) 1
127.0.0.1:6379> INCRBY k2 3
(integer) 4
127.0.0.1:6379> INCRBY k2 3
(integer) 7
127.0.0.1:6379> INCRBY k2 3
(integer) 10
127.0.0.1:6379> INCRBY k2 3
(integer) 13
127.0.0.1:6379> DECRBY k2 2
(integer) 11
127.0.0.1:6379> DECRBY k2 2
(integer) 9
127.0.0.1:6379> DECRBY k2 2
(integer) 7
3 getrange/setrange
getrange:由键得到指定范围内的值 setrange:从指定开始,覆盖设置值
127.0.0.1:6379> set k3 123456789
OK
127.0.0.1:6379> get k3
"123456789"
127.0.0.1:6379> GETRANGE k3 0 -1
"123456789"
127.0.0.1:6379> GETRANGE k3 0 5
"123456"
127.0.0.1:6379> GETRANGE k3 3 7
"45678"
127.0.0.1:6379> set k3 0 xxx
(error) ERR syntax error
127.0.0.1:6379> SETRANGE k3 0 xxx
(integer) 9
127.0.0.1:6379> get k3
"xxx456789"
4 setex(set with expire)/setnx(set if not exist)
setex:设置键值,并指定存活时间 setnx:提供键存在返回0,并不设置键值;若键不存在返回1,并设置键值
127.0.0.1:6379> SETEX k4 10 v4
OK
127.0.0.1:6379> get k4
"v4"
127.0.0.1:6379> ttl k4
(integer) 0
127.0.0.1:6379> ttl k4
(integer) -2
127.0.0.1:6379> get 4k
(nil)
127.0.0.1:6379> get k4
(nil)
127.0.0.1:6379> setnx k3 v33
(integer) 0
127.0.0.1:6379> get k3
"xxx456789"
127.0.0.1:6379> SETNX k5 v5
(integer) 1
127.0.0.1:6379> get k5
"v5"
5 mset/mget/msetnx
mset:成批设置键值 mget:成批获得值 msetnx:成批查重设置键值
127.0.0.1:6379> mset kk1 vv1 kk2 vv2 kk3 vv3
OK
127.0.0.1:6379> mget kk1 kk2 kk3
1) "vv1"
2) "vv2"
3) "vv3"
127.0.0.1:6379> MSETNX kk1 vvv1 kk2 vvv2
(integer) 0
127.0.0.1:6379> MSETNX kk1 vvv1 kk4 vv4
(integer) 0
127.0.0.1:6379> MSETNX kk4 vv4 kk5 vv5
(integer) 1
6 getset
getset:先get再set,返回原来的值,没有返回nil,并覆盖设置新的值
127.0.0.1:6379> getset k6 v6
(nil)
127.0.0.1:6379> get k7
(nil)
127.0.0.1:6379> getset k7 v7
(nil)
127.0.0.1:6379> get k7
"v7"
127.0.0.1:6379> getset k7 v77
"v7"
127.0.0.1:6379> get k7
"v77"
2.Hash(哈希,类似java里的map)
redis hash是一个键值对集合 redis hash是一个string类型的field和value的映射表,hash特别适合用于储存对象。 类似java里面的map
常用指令
1 hset/hget/hmset/hmget/hgetall/hdel
hset key key1 value:设置一个Hash,是一个键值对,键为key;值又是一个键值对,键为key1,值为value
hget key key1:获得一个值。
hmset key key1 value1 key2 value2:设置一个Hash,键值对的键为key;值为多个键值对,键为key*,值为value*。
hmget:由主键与多个二级主键获得多个值。
hgetall:由主键获得所有的二级主键与对应的值。
hdel key:删除一个二级键值对。
127.0.0.1:6379> hset user id 11
(integer) 1
127.0.0.1:6379> hget user id
"11"
127.0.0.1:6379> hset user name lolo
(integer) 1
127.0.0.1:6379> hget user name
"lolo"
127.0.0.1:6379> hmset customer id 11 name linda age 12
OK
127.0.0.1:6379> hmget customer id name age
1) "11"
2) "linda"
3) "12"
127.0.0.1:6379> HGETALL customer
1) "id"
2) "11"
3) "name"
4) "linda"
5) "age"
6) "12"
127.0.0.1:6379> HDEL customer age
(integer) 1
127.0.0.1:6379> HGETALL customer
1) "id"
2) "11"
3) "name"
4) "linda"
2 hlen key 由主键获得二级键值对的个数
127.0.0.1:6379> HGETALL customer
1) "id"
2) "11"
3) "name"
4) "linda"
127.0.0.1:6379> hlen customer
(integer) 2
3 hexists key 检测是否存在主键为key的hash
127.0.0.1:6379> HGETALL customer
1) "id"
2) "11"
3) "name"
4) "linda"
127.0.0.1:6379> HEXISTS customer id
(integer) 1
127.0.0.1:6379> HEXISTS customer ids
(integer) 0
4 hkeys/hvals
hkeys key:由主键获得二级键值对的所有键。 hvals key:由主键获得二级键值对的所有值。
127.0.0.1:6379> HGETALL customer
1) "id"
2) "11"
3) "name"
4) "linda"
127.0.0.1:6379> HEXISTS customer id
(integer) 1
127.0.0.1:6379> HEXISTS customer ids
(integer) 0
5 hincrby/hincrbyfloat
hincrby key key1 value:主键加二级主键对应的值加value hincrbyfloat key key1 value:主键加二级主键对应的值加value(可以是小数)
127.0.0.1:6379> HGETALL customer
1) "id"
2) "11"
3) "name"
4) "linda"
5) "age"
6) "3"
127.0.0.1:6379> HINCRBY customer age 3
(integer) 6
127.0.0.1:6379>
127.0.0.1:6379> HINCRBY customer age 3
(integer) 9
127.0.0.1:6379>
127.0.0.1:6379> HINCRBY customer age 3
(integer) 12
127.0.0.1:6379> HINCRBYFLOAT customer age 2.5
"14.5"
127.0.0.1:6379> HINCRBYFLOAT customer age 2.5
"17"
127.0.0.1:6379> HINCRBYFLOAT customer age 2.5
"19.5"
6 hsetnx key key1 value:在key主键的值中增添一个新的键值对若二级主键key1已经存在,不会设置上去,不存在就设置上去
127.0.0.1:6379> HGETALL customer
1) "id"
2) "11"
3) "name"
4) "linda"
5) "age"
6) "19.5"
127.0.0.1:6379> HSETNX customer age 11
(integer) 0
127.0.0.1:6379> HSETNX customer email 111@yyyu.com
(integer) 1
127.0.0.1:6379> HGETALL customer
1) "id"
2) "11"
3) "name"
4) "linda"
5) "age"
6) "19.5"
7) "email"
8) "111@yyyu.com"
3.List(列表)
redis列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素列表的头部(左边)或者尾部(右边)。它的底层实际是个链表。
常见指令
1 lpush/rpush/lrange
lpush:后面的数从左到右依次压栈。 rpush:后面的数从右到左依次压栈。 lrange:从栈顶到栈底依次遍历。
127.0.0.1:6379> LPUSH list1 1 2 3 4 5
(integer) 5
127.0.0.1:6379> LRANGE list1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> RPUSH list2 1 2 3 4 5
(integer) 5
127.0.0.1:6379> LRANGE list2 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
2 lpop/rpop
lpop:从栈顶出一个数 rpop:从栈底出一个数
127.0.0.1:6379> LPOP list1
"5"
127.0.0.1:6379> lpop list2
"1"
127.0.0.1:6379> LRANGE list1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> LRANGE list2 0 -1
1) "2"
2) "3"
3) "4"
4) "5"
127.0.0.1:6379> RPOP list1
"1"
127.0.0.1:6379> RPOP list2
"5"
127.0.0.1:6379 20000 > LRANGE list 0 -1
(empty list or set)
127.0.0.1:6379> LRANGE list1 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:6379> LRANGE list2 0 -1
1) "2"
2) "3"
3) "4"
3 lindex 按照索引取数据,索引从0开始
127.0.0.1:6379> LRANGE list1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> LINDEX list1 3
(nil)
127.0.0.1:6379> LINDEX list1 2
"2"
4 llen 获取list的长度
127.0.0.1:6379> LRANGE list1 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:6379> LLEN list1
(integer) 3
5 lrem key n m,删除key中n个m
127.0.0.1:6379> LPUSH list3 1 1 1 2 2 2 3 3 3 4 4 4 5 6 6 7
(integer) 16
127.0.0.1:6379> LREM list3 2 4
(integer) 2
- Redis五大数据类型的常用操作
- Redis入门之五大数据类型及常用操作
- redis 五大数据类型的常用指令
- Redis学习笔记(九)--Redis常用五大数据类型
- redis_2_key_五大数据类型常用命令
- Redis常用五大数据类型
- redis 五大数据类型及常用操作
- Redis五大数据类型的常用操作
- Redis常用五大数据类型
- Redis学习笔记(四)—— redis的常用命令和五大数据类型的简单使用
- Redis常用五大数据类型
- Redis中常用的五大数据类型的介绍以及代码的实现
- Redis 五大常用数据类型
- Redis常用五大数据类型
- Redis基本的数据类型和常用命令
- redis的基本命令和五大基本数据类型
- redis--(1)redis的常用数据类型
- Redis String类型数据常用的16条命令总结
- Redis常用数据类型及命令
- Redis Hash类型数据常用命令总结