标签:效率 -- str font nil 插入 load art 频繁
Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server,该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。
Redis特点:
Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。
Redis应用场景:
因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,
将这种热点数据存到Redis(内存)中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。
安装
sudo apt-get update
sudo apt-get install redis-server
#Select 命令用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。
#默认使用 0 号数据库 默认开16个库
SELECT 1 # 使用 1 号数据库,Redis 现在的命令提示符多了个 [1]
进入
redis-cli
redis-cli --raw #能显示中文
exit #退出
list
列表
hash
哈希
set
集合
sorted sets
有序集合
string 类型是 redis 最基本的类型, string 类型,一个 key 对应一个 value,一个 value 最大能存储512MB的数据。
set key value
设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
set name ‘joe‘
get key
返回key的值,若key不存在则返回nil
mset key value [key value..]
为多组key设置值,该操作为原子操作,要么一组都设置成功,要么一组都设置失败;
mset username ‘root‘ password ‘123‘ name ‘joe‘
返回一个或多个key的值,若key不存在返回nil,若key存在但不是字符串返回nil
mget username, password, name #有,号会被认为是key的一部分
mget username password name
append key value
将指定的值追加到key末尾,若key不存在,则创建并赋值,返回追加后的字符串长度
append name love
ttl key
返回key的剩余生存时间, -1 表示永久存在, -2表示不存在
?
set key value ex seconds
设置 key的同时,设置过期时间(单位:秒) key 过期后将不再可用,会被系统自动删除。
set age 18 ex 20
或 setex key seconds value 例: ( setex sex 20 ‘男‘ )
persist key
移除指定key的生存时间,成功返回1,若key不存在或不存在生存时间时返回0;
rename key newkey 改名
当key和newkey相同或者key不存在时返回一个错误,当newkey已存在时则会覆盖;
keys * # 查看所有的key
?
del key # 删除 返回成功的个数
?
exists key # 查看key是否存在 返回存在个个数
?
type key # 查看key类型
?
expire key seconds #设置过期时间
persist key #移除过期时间
列表的元素类型为string,按照插入顺序排序在列表的头部或者尾部添加元素.
lpush key value[value...]
在头部插入数据
lpush key value #例 lpush my_list a b c d
在尾部添加数据
rpush key value #例 rpush my_rlist a b c d
lindex key index
返回列表中元素的值。index从0开始,当index超出索引时返回null
lindex my_list 3 #查看第三个
?
lrange key start stop
查看索引范围内元素的值
lrange my_list 0 -1 #查看所有值
llen key
返回列表的长度
llen my_list
lset key index newvalue
指定索引号进行修改
lset my_list 0 hello
?
删除
lpop key 删除左边第一个
rpop my_list
rpop key 删除右边第一个
rpop my_list
是一个键值(key=>value)对集合。是string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象, field 域, value 值
设置/修改
hset key field value
将field-value设置到hash表中,若key不存在会新建hash表再赋值,已存在则会覆盖;
hset user name xiaoming #user { name:xiaoming}
hmset key field1 value1[field value...]
同时设置多个
# user {name:xiaoming , age:18}
hmset user name xiaoming age 18
查看
hget key field
获取value
hget user name
hmget key field[field...]
获取多个value
hmget user name age
hvals key
获取全部value
hkeys key
获取所有的field
hgetall key
获取全部field
和 value
hlen key
查看有几个键值对
hexists key field
判断hash表中指定域是否存在,返回1,若key或field不存在则返回0;
hexists user age
删除
hdel key field
hdel user name
元素为string类型,无序集合,元素具有唯一性,不重复
sadd key member [member...] 增加元素
将一个或多个member元素加入到集合key中,若member已存在那么会忽略此元素,
sadd my_set m n b v c x z b
scard key
返回集合key中元素的个数;
smembers key
获取集合中所有元素
sismember key member 判断集合存在某个值
判断member在key中是否已存在, 返回0或1
sismember my_set b
删除
srem key member [member...]
移除一个或多个元素,不存在的member会被忽略,返回被移除元素个数
srem my_set a b n
spop key 随机删除
移除并返回集合中的一个随机元素,当key不存在时返回NULL
类似于Set,不同的是Sorted中的每个成员都分配了一个分数(Score)用于对其中的成员进行排序(升序)。
zset的成员是唯一的,但分数(score)却可以重复。
添加/修改
zadd key score member[ [score member] ..]
设置, 存在就更新
zadd my_zset 1 ‘one‘
zadd my_zset 2 ‘tow‘
?
zadd my_zset 10 a 20 b 30 c 40 d 50 a
查看
zscore key member
查看score值
zscore my_zset a
zrange key start stop[withscores]
按索引返回key的成员, withscores表示显示score
zrange my_zset 0 -1 #显示全部
zrangebyscore key min max
返回集合中 score 在给定区间的元素
zrangebyscore zset 10 30
删除
zrem key member [member...]
移除有序集合中的一个或多个元素,若member不存在则忽略;
zrem my_zset two
?
zremrangebyrank min max :
删除集合中索引在给定区间的元素
zremrangebyrank my_zset 1 3
zremrangebyscore min max :
删除集合中 score 在给定区间的元素
zremrangebyscore my_zset 10 30
标签:效率 -- str font nil 插入 load art 频繁
原文地址:https://www.cnblogs.com/austinjoe/p/9571746.html