Redis数据类型

Redis数据类型

哪里去获得redis常见数据类型操作命令?http://redisdoc.com/

1、String(字符串)


string是redis最基本的类型,可以理解成与Memcached一模一样的类型,一个key对应一个value。

string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

2、Hash(哈希)

Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。

类似Java里面的Map<String,Object>

3、List(列表)

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
它的底层实际是个链表

4、Set(集合)

Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,

5、zset(sorted set:有序集合)

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

Redis 键(key)

1、开启redis,默认端口为6379

ps -ef|gerp redis ##查看redis是否已经开启与redis启动端口
redis-server redis-conf ##使用哪个配置文件启动redis
redis-cli -h 127.0.0.1 -p 6379 #启动redis
ping ##返回一个pong,表示已经连接上redis

2、key *  展示所有key

127.0.0.1:6379> keys *
1) "mylist"
2) "test"
3) "auditState"
4) "list"
5) "l"

3、 exists key的名字,判断某个key是否存在,存在返回1,不存在返回(Integer)0

127.0.0.1:6379> exists key list
(integer) 1

4、 move key db   --->当前库就没有了,被移除了

127.0.0.1:6379> move  list 1
(integer) 1
127.0.0.1:6379> get list
(nil)
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "list"
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> 

5、为给定的key设置过期时间 --->expire key time 

127.0.0.1:6379> expire mylist 15
(integer) 1
127.0.0.1:6379> ttl mylist
(integer) 5
127.0.0.1:6379> 

6、 ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期

127.0.0.1:6379> ttl mylist
(integer) 5
127.0.0.1:6379> ttl mylist
(integer) -2
127.0.0.1:6379> ttl l
(integer) -1
127.0.0.1:6379> 

7、 type key 查看你的key是什么类型

127.0.0.1:6379> type list
list
127.0.0.1:6379> type test
string

Redis字符串(String)(单值单value)

1、 set/get/del/append/strlen

127.0.0.1:6379> set myredis myredis
OK
127.0.0.1:6379> get myredis
"myredis"
127.0.0.1:6379> del myredis
(integer) 1
127.0.0.1:6379> set myredis
"111"
127.0.0.1:6379> append myredis 2
(integer) 4
127.0.0.1:6379> get myredis
"1112"
127.0.0.1:6379> strlen myredis
(integer) 4

2、Incr/decr/incrby/decrby,一定要是数字才能进行加减

127.0.0.1:6379> set mykey 1
OK
127.0.0.1:6379> incr mykey
(integer) 2
127.0.0.1:6379> decr mykey
(integer) 1
127.0.0.1:6379> incrby mykey 10
(integer) 11
127.0.0.1:6379> decrby mykey 10
(integer) 1

3、 getrange/setrange

GETRANGE key start end

返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。

负数偏移量表示从字符串最后开始计数, -1 表示最后一个字符, -2 表示倒数第二个,以此类推。

GETRANGE 通过保证子字符串的值域(range)不超过实际字符串的值域来处理超出范围的值域请求。

127.0.0.1:6379> getrange mystr 0 -1
"12345"
127.0.0.1:6379> setrange mystr 0 2
(integer) 5
127.0.0.1:6379> get mystr
"22345"

 4、setex(set with expire)键秒值/setnx(set if not exist)将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)。

setex:设置待过期时间的key,动态设置。
setex 键 秒值 真实值

setnx:只有在 key 不存在时设置 key 的值。

127.0.0.1:6379> setex mykey 15 v
OK
127.0.0.1:6379> ttl mykey
(integer) 12
127.0.0.1:6379> get job
"111"
127.0.0.1:6379> setnx myredis 111
(integer) 0

 5、mset/mget/msetnx

mset:同时设置一个或多个 key-value 对。 

mget:获取所有(一个或多个)给定 key 的值。

msetnx:同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。

27.0.0.1:6379> mset name huang sex nan age 12
OK
127.0.0.1:6379> mget name sex age
1) "huang"
2) "nan"
3) "12"

  6、getset(先get再set)

127.0.0.1:6379> get myredis
"123"
127.0.0.1:6379> get myredis
"123"
127.0.0.1:6379> getset myredis 456
"123"
127.0.0.1:6379> get myredis
"456"

Redis列表(List)(单值多value)

1、 lpush(栈结构)/rpush(队列结构)/lrange

127.0.0.1:6379> lpush ll 1 2 3 4 5
(integer) 5
127.0.0.1:6379> lrange ll 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> rpush lr 1 2 3 4 5
(integer) 5
127.0.0.1:6379> lrange lr 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"

2、lpop 移除并返回列表 key 的头元素(移除掉的)。

127.0.0.1:6379> lrange ll 0 -1
1) "3"
2) "2"
3) "1"
127.0.0.1:6379> lpop ll
"3"
127.0.0.1:6379> lrange ll 0 -1
1) "2"
2) "1"

rpop:移除并返回列表 key 的尾元素(移除掉的)。

127.0.0.1:6379> rpop ll
"1"
127.0.0.1:6379> lrange ll 0 -1
1) "2"
127.0.0.1:6379> 

3、 lindex,按照索引下标获得元素(从上到下)

 lindex key index

127.0.0.1:6379> lrange lr 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> lindex lr 0
"1"
127.0.0.1:6379> lrange ll 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> lindex ll 0
"4"

4、llen

127.0.0.1:6379> llen ll
(integer) 4
127.0.0.1:6379> lrange ll 0 -1
1) "4"
2) "3"
3) "2"
4) "1"

5、 lrem key 删N个value

 * 从left往right删除2个值等于v1的元素,返回的值为实际删除的数量
 *  LREM list3 0 值,表示删除全部给定的值。零个就是全部值

原文地址:https://www.cnblogs.com/huanghuanghui/p/9326402.html