Redis的基操
1、Redis是什么?
是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
2、Redis优点。
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
- Redis的所有操作都是原子性的,要么成功执行要么失败完全不执行。单操作是原子性的。多个操作也支持事务的原子性,通过MULTI和EXEC指令包。
3、Redis数据类型。
- String: 字符串
- Hash: 散列
- List: 列表
- Set: 集合
- Sorted Set: 有序集合
4、Redis取值设值操作
String类型
set 设值 set key value
get 取值 get key 返回 value
Hash类型
Redis hash 是一个键值(key=>value)对集合。
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象
hmset 设值 hmset key field1 value1 field2 value2
hget 取值 hget key field1 返回 value1
hget key field2 返回 value2
List类型
lpush 设值 lpush key value1 返回当前List存储数据数量
lpush key value2 value3
lrange 取值 lrange key 0 10 返回序号 0-10(包括序号0、10)的数据
注:List有点像栈,最后一个添加的数据序号为0,前面添加的数据序号全部加1。
你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
Set类型:
不允许有重复的记录,如为set添加重复的值,会返回0,意味着数据没有变化。
sadd 设值 sadd key value1 返回当前操作录入成功的记录数
sadd key value2 value3
smembers 取值 smembers key 返回所有值
ZSet
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数(score)来为集合中的成员进行从小到大的排序,分数(score)允许重复。
zadd 设值 zadd key 2 value1 返回当前操作录入成功的数据数量
zadd key 0 value1 2 value3
zrangescore取值 zrangebyscore key 0 2 返回score在0-2(包括0和2)之间的数据
del 删除key 返回删除记录数
注意:执行set key 命令时,如果key已存在,不管数据类型是什么都能执行成功,且key数据类型都将变为String;如果在执行其他设值命令时(如hmset,lpush,sadd,zadd),此时如果key存在的话会报错(wrongtype operation~)。
5、Redis自带客户端
本地redis:在redis安装目录下执行redis-cli,就可以进入redis客户端了。
远程redis:redis-cli -h 远程redis服务器地址 -p 远程redis的端口号 -a 密码
如:redis-cli -h 127.0.0.1 -p 6379 -a password
6、Redis通用操作命令
type key 返回key所对应的数据类型
del key 删除key 返回被删除 key 的数量
dump key 序列化key 返回被序列化的值,key不存在返回nil
exists key 判断key是否存在 存在返回1,不存在返回0
expire key time 设值key的过期时间(time秒数) 成功返回1,失败返回0(key不存在或者已过期) 注意过期后key依然存在只是不可用了。如果设值为负数则直接删除key
expireat key timestamp 设置过期时间参数为unix时间戳 成功返回1,失败返回0
pexpire key millseconds 设值过期时间的毫秒数 成功返回1,失败返回0
pexpireat key milliseconds-timestamp 设值毫秒计的过期时间错 成功返回1,失败返回0
ttl key 查看key的过期时间 返回剩余过期秒数,没有设置过期时间的key返回-1,已经过期或不存在的返回-2
pttl key 查看key的过期时间 返回剩余过期毫秒数
persist key 移除key的过期时间 成功返回1,失败返回0
keys pattern 返回所有符合模式的key
move key db 将当前数据库的key移动给定的数据库(db)中 成功返回1,失败返回0
select db 切换数据库 成功返回OK
randomkey 随机返回一个key,如果数据库为空,则返回nil
rename key newkey 修改key的名字;如果newkey存在则先del newkey,在进行改名 成功返回OK,失败返回错误
renamenx key newkey 如果newkey不存在,则进行改名 成功返回1,newkey已经存在返回0,否则报错
7、string操作命令
get key 获取指定key的值
getrange key start end 获取指定key一段位置的子字符,key不存在或者截取位置为负数返回空字符。中文一个字占三个位置。
getset key value 重置指定key的值,并返回旧值。如果key不存在则创建key,返回null;key存在数据类型为String,返回旧值;key存在不是string类型,报错wrongtype
setex key second value 给指定的key设值,同时设置过期时间second秒
psetex key milloseconds value 给指定的key设值,同时设置过期时间milloseconds 秒
setnx key value 当key不存在时,给指定的key设值。成功返回1,失败返回0
setrange key offset value 从offset位置开始,往后替换value长度的字符为value的内容。
strlen key 返回key存储字符长度
mset key1 value1 key2 value2 同时为多个key设置value
mget key1 key2 key3…… 获取多个key的值,一数组形式返回;如果某一个位置的key不存在,或者不是string类型,返回的数组对应位置为null。
msetnx key1 value1 key2 value2 同时为多个key设值,如果包含已存在的key则失败。操作成功返回1,失败返回0。
incr key 将存储的数值加1 返回最新的结果。如果key不是纯数字,则返回异常;如果key不存在,则创建key,并设置值为1。
incrby key increment 给key存储的数值增加increment(增量值)的数值
incrbyfloat key increment 给key存储的数值增加increment(增量值)的浮点数值
decr key 与incr相反,将key存储的数值减1
decrby key decrement 与incrby相反
decrbyfloat key decrement 与incrbyfloat相反
浙公网安备 33010602011771号