Tair 是由淘宝网自主开发的 Key/Value 结构数据存储系统,在淘宝网有着大规模的应用。您在登录淘宝、查 看商品详情页面或者在淘江湖和好友“捣浆糊”的时候,都在直接或间接地和 Tair 交互
Tair 是一个 Key/Value 结构数据的解决方案,它默认支持基于内存和文件的两种存储方式,分别和我们通常 所说的缓存和持久化存储对应
Tair 除了普通 Key/Value 系统提供的功能,比如 get、put、delete 以及批量接口外,还有一些附加的实用功能, 使得其有更广的适用场景
#1.修改配置文件
[root@redis01conf]# vim /usr/local/redis/conf/redis.conf
requirepass 123
#2.重启
[root@redis01~]# systemctl restart redis.service
#进入以后提示无权限 需要密码
[root@redis01~]# redis-cli
127.0.0.1:6379> set a b
(error) NOAUTH Authentication required.
#1.使用密码进入
[root@redis01~]# redis-cli -a 123
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379>
#2.进入后使用密码
[root@redis01~]# redis-cli
127.0.0.1:6379> AUTH 123
OK
6.解决中文乱码问题
[root@redis01~]# redis-cli
127.0.0.1:6379> set name 明哥
OK
127.0.0.1:6379> get name
"\xe4\xb8\x80\xe5\xa4\x9c\xe6\x9a\xb4\xe5\xaf\x8c" #获取乱码
[root@redis01~]# redis-cli --raw
127.0.0.1:6379> auth 123
OK
127.0.0.1:6379> get name
明明
三、redis数据结构
1.字符串
127.0.0.1:6379> help @string #查看全部字符串
#1.添加
127.0.0.1:6379> set name 明明
OK
#2.获取
127.0.0.1:6379> get name
明哥
#3.修改
127.0.0.1:6379> set name 明哥
OK
127.0.0.1:6379> get name
明哥
#4.删除
127.0.0.1:6379> del name
1
127.0.0.1:6379> get name
#5.判断一个key是否存在
127.0.0.1:6379> exists name
0 #表示key不存在
127.0.0.1:6379> set name lll
OK
127.0.0.1:6379> exists name
1 #表示key存在
#6.过期时间
127.0.0.1:6379> TTL name #查看过期时间
-1 #永不过期
127.0.0.1:6379> TTL name
-2 # 已经过期了
127.0.0.1:6379> TTL name
3 # 剩下3秒钟就过期了
#7.设置一个以毫秒为单位的过期时间
127.0.0.1:6379> set name mm px 10000
OK
#8.设置一个以秒为单位的过期时间
127.0.0.1:6379> set name mm ex 10
OK
#9.合并set和ex
127.0.0.1:6379> SETEX name 10 abc #key+秒数+value
#10.合并set和px
127.0.0.1:6379> PSETEX name 10000 dbc #key+秒数+value
#11.判断一个key不存在则创建,存在则忽略
(NX:当key不存在时创建,已存在则忽略)
127.0.0.1:6379> set name lll nx
OK
127.0.0.1:6379> get name
lll
127.0.0.1:6379> set name qqq nx #存在则忽略
127.0.0.1:6379> get name
lll
#12.合并set和nx
127.0.0.1:6379> SETNX name mingge
0
127.0.0.1:6379> get name
mingge
127.0.0.1:6379> SETNX name chenyang
0
127.0.0.1:6379> get name
mingge
(XX:当key存在则更新,不存在则忽略)
127.0.0.1:6379> get name
lll
127.0.0.1:6379> set name qqq xx
OK
127.0.0.1:6379> get name
qqq
#14.设置多个值
127.0.0.1:6379> MSET b c d e f g
OK
127.0.0.1:6379> KEYS *
f
b
a
d
name
127.0.0.1:6379> get b
c
127.0.0.1:6379> get d
e
127.0.0.1:6379> get f
g
127.0.0.1:6379>
#15.删除多个值
127.0.0.1:6379> KEYS *
1) "a"
2) "name"
3) "d"
127.0.0.1:6379> del a d
(integer) 2
127.0.0.1:6379> KEYS *
1) "name"
#16.GETSET
(相当于get+set:先执行get命令,返回get结果,然后将key更新为新的value,下次再get的时候查到的就是新得value)
127.0.0.1:6379> GETSET name lalala
"qqq"
127.0.0.1:6379> get name
"lalala"
#17.按照下标去更新
127.0.0.1:6379> GETSET name lalalla
mming
127.0.0.1:6379> get name
lalalla
127.0.0.1:6379> SETRANGE name 2 mm
7
127.0.0.1:6379> get name #在第二位数后添加指定内容
lammlla
#18.获取多个key值
127.0.0.1:6379> MGET get name
lammlla
#19.截取
127.0.0.1:6379> get name #截取name值的2-4位
lammlla
127.0.0.1:6379> GETRANGE name 2 4
mml"
#20.计数
(Redis当中的计数器是具有原子性的)
127.0.0.1:6379> INCR num # 递增
1
127.0.0.1:6379> DECR num # 递减
0
#21.指定长度递增
127.0.0.1:6379> incrby num 11
12
127.0.0.1:6379> incrby num 11
23
#22.指定长度递减
127.0.0.1:6379> decrby num 11
12
#23.追加
127.0.0.1:6379> get name
lammlla
127.0.0.1:6379> append name --
9
127.0.0.1:6379> get name
lammlla--
2.redis数据结构之哈希
#怎样用一个key存一个人的信息呢?
#1.写入数据
127.0.0.1:6379> hset people name mm set man add beijing
3
#2.获取数据
127.0.0.1:6379> hget people name
mm
127.0.0.1:6379> hget people add
beijing
#4.修改数据
127.0.0.1:6379> hset people name mingge
0
127.0.0.1:6379> hget people name
mingge
#5.删除数据
127.0.0.1:6379> hdel people name
1
127.0.0.1:6379> hget people name
#6.删除所有数据
127.0.0.1:6379> del people
1
127.0.0.1:6379> hget people name
(nil)
127.0.0.1:6379> hget people add
(nil)
#7.获取多个值
127.0.0.1:6379> hset people name mm sex man add beijing
3
127.0.0.1:6379> hmget people name add sex
mm
beijing
man
#8.获取所有的key和value
127.0.0.1:6379> hgetall peopel
1) "name"
2) "yeyeye"
3) "sex"
4) "man"
5) "add"
6) "tianjian"
#9.获取所有的key
127.0.0.1:6379> hkeys peopel
1) "name"
2) "sex"
3) "add"
#10.获取所有的value
127.0.0.1:6379> hvals peopel
mm
man
beijing
#11.计数(增加)
127.0.0.1:6379> hincrby people id 1
1
127.0.0.1:6379> hincrby people id 1
2
127.0.0.1:6379> hincrby people id 1
3
#12.计数(递减)
127.0.0.1:6379> hget peopel id
"3"
127.0.0.1:6379> hincrby peopel id -1
-1
127.0.0.1:6379> hincrby peopel id -1
-2
#13.计数(小数点)
127.0.0.1:6379> HINCRBYFLOAT peopel num 1.34
1.34
127.0.0.1:6379> HINCRBYFLOAT peopel num 1.34
2.68
127.0.0.1:6379> HINCRBYFLOAT peopel num 1.34
4.02
===========================================
127.0.0.1:6379> HINCRBYFLOAT people num 10.9
134.09
127.0.0.1:6379> HINCRBYFLOAT people num 10.9
144.98999999999999999 # 精度不够
#14.获取长度
127.0.0.1:6379> hlen peopel
2
#15.获取某个字段的长度
127.0.0.1:6379> hstrlen peopel num
4
#16.设置过期时间
17.0.0.1:6379> expire peopel 111
1
127.0.0.1:6379> ttl peopel # 查看过期时间
-2