Redis中常用的六种数据类型(key与五种数据类型
Redis中常用的六种数据类型(key与五种数据类型)
使用 select 索引 来切换数据库:select 5
String(字符串)
在redis中字符串的类型是安全的二进制类型,并且字符串的value
的最法制是512M,那就意味着 String类型并不是只能单单存储一个简单的字符串,也可以存储图片或者文件的序列化对象,字符串类型采用类似arraylist采用扩容机制
-
set key value 存储一个字符串到redis中
127.0.0.1:6379[2]> set name hanhan OK
-
get key 从redis中取值
127.0.0.1:6379[2]> get name "hanhan"
-
append key value 可以将内容追加到之前的key上 如果不存在则会创建key并存储
127.0.0.1:6379[2]> append name add (integer) 9 127.0.0.1:6379[2]> get name "hanhanadd"
-
strlen name 获得value占用的字节数(一个中文占3个字节)
127.0.0.1:6379[2]> strlen name (integer) 9
-
incr key key对应的value必须是数字类型 否则会抛出异常 作用为如果key存在则让值进行自增1的操作,不存在则创建key的值为1
127.0.0.1:6379[2]> set number 10 OK 127.0.0.1:6379[2]> incr number (integer) 11 127.0.0.1:6379[2]> get number "11"
-
decr key 与incr相反进行的是-1的操作
127.0.0.1:6379[2]> decr number (integer) 10 127.0.0.1:6379[2]> get number "10"
-
incrby / decrby key 步长 与incr / decr 的作用类似 但是不是自增1而是根据指定的步长进行自增以及自减操作
127.0.0.1:6379[2]> incrby number 5 (integer) 15 127.0.0.1:6379[2]> decrby number 10 (integer) 5
-
mset key value key value…
一次存储多个key value127.0.0.1:6379[2]> mset age 18 sex n status 1 OK 127.0.0.1:6379[2]> keys * 1) "number" 2) "sex" 3) "name" 4) "status" 5) "age"
-
mget key key… 一次获取多个值
127.0.0.1:6379[2]> mget number sex name age 1) "5" 2) "n" 3) "hanhanadd" 4) "18"
Redis的原子性:一次存储多个key value 与多次存储多个key value有什么区别?
原子性是不可风分割的的组织,redis中的单条命令能够完成的操作,全部都是原子性的,因为Redis是单线程的,所以Redis在执行一条命令的途中不会被其他线程打断,也不会被切换但其他线程,而如果是多条命令的话,则不会具备原子性(也就是指
mset id 1 name 憨憨 age 19 这个操作是一条命令,不会被其他线程打断
set id 1 set name 憨憨 set age 19 这个操作是三条命令。中间可能被其他线程打断)
-
msetnx key value key value…
一次存储多个key value 要么都成功 要么都失败
-
getrange key 起始下标 到此下标结束
截取字符串 从起始下标取到结束下标,然后将值返回
127.0.0.1:6379[2]> get name "hanhanadd" 127.0.0.1:6379[2]> getrange name 1 3 "anh"
-
setrange key 起始下标 value
从起始下标开始 替换对应的value位数的值
127.0.0.1:6379