redis字符串操作
1.redis字符串类型
string 字符串类型,常用于普通文本
list 列表类型,常用于一个仓库,取走一个数据就删除
hash 哈希类型,常用于将mysql数据导入redis
set 集合类型,用于不同集合进行比对
2.redis常用指令
keys * //列出所有key,生产环境不要使用,很有可能一使用keys就会把服务器内存占满,从而导致redis挂机,因为生产环境有长千上万个key
type key //查看key是什么类型
del key //删除一个key
flushdb //清除缓存
3.redis字符串类型操作
3.1.字符串类型常用指令
3.2.创建一个key并查看
语法:set key名 value值
既可以在交互式创建也可以在命令行创建
1.在交互式创建一个key [root@redis-1 ~]# redis-cli 127.0.0.1:6379> set k1 v1 OK 2.在命令行创建一个key [root@redis-1 ~]# redis-cli set k2 v2 OK 3.在交互式查看key内容 [root@redis-1 ~]# redis-cli 127.0.0.1:6379> get k1 "v1" 4.在命令行查看key内容 [root@redis-1 ~]# redis-cli get k2 "v2"
3.3.从文件中读取value并创建key
redis支持value的内容为中文,准备一个中文的文件,创建key的时候读取文件的值
中文的文件存储到redis之后是,只是显示是乱码,实际上还是中文,可以导出到文件查看中文,也可以加–raw解决乱码显示问题
1.准备一个中文的文件 [root@redis-1 ~]# cat > test.txt <<EOF > 当你能念书时,你念书就是;当你能做事时,你做事就是;当你能恋爱时,你再去恋爱;当你能结婚时,你再去结婚。环境不许可时,强求不来;时机来临时,放弃不得。这便是一个人应有的生活哲学了。 > EOF 2.创建一个key从文件中读取value [root@redis-1 ~]# redis-cli set test `cat test.txt` OK 3.查看key的内容,会发现是乱码 [root@redis-1 ~]# redis-cli get test "\xe5\xbd\x93\xe4\xbd\xa0\xe8\x83\xbd\xe5\xbf\xb5\xe4\xb9\xa6\xe6\x97\xb6\xef\xbc\x8c\xe4\xbd\xa0\xe5\xbf\xb5\xe4\xb9\xa6\xe5\xb0\xb1\xe6\x98\xaf\xef\xbc\x9b\xe5\xbd\x93\xe4\xbd\xa0\xe8\x83\xbd\xe5\x81\x9a\xe4\xba\x8b\xe6\x97\xb6\xef\xbc\x8c\xe4\xbd\xa0\xe5\x81\x9a\xe4\xba\x8b\xe5\xb0\xb1\xe6\x98\xaf\xef\xbc\x9b\xe5\xbd\x93\xe4\xbd\xa0\xe8\x83\xbd\xe6\x81\x8b\xe7\x88\xb1\xe6\x97\xb6\xef\xbc\x8c\xe4\xbd\xa0\xe5\x86\x8d\xe5\x8e\xbb\xe6\x81\x8b\xe7\x88\xb1\xef\xbc\x9b\xe5\xbd\x93\xe4\xbd\xa0\xe8\x83\xbd\xe7\xbb\x93\xe5\xa9\x9a\xe6\x97\xb6\xef\xbc\x8c\xe4\xbd\xa0\xe5\x86\x8d\xe5\x8e\xbb\xe7\xbb\x93\xe5\xa9\x9a\xe3\x80\x82\xe7\x8e\xaf\xe5\xa2\x83\xe4\xb8\x8d\xe8\xae\xb8\xe5\x8f\xaf\xe6\x97\xb6\xef\xbc\x8c\xe5\xbc\xba\xe6\xb1\x82\xe4\xb8\x8d\xe6\x9d\xa5\xef\xbc\x9b\xe6\x97\xb6\xe6\x9c\xba\xe6\x9d\xa5\xe4\xb8\xb4\xe6\x97\xb6\xef\xbc\x8c\xe6\x94\xbe\xe5\xbc\x83\xe4\xb8\x8d\xe5\xbe\x97\xe3\x80\x82\xe8\xbf\x99\xe4\xbe\xbf\xe6\x98\xaf\xe4\xb8\x80\xe4\xb8\xaa\xe4\xba\xba\xe5\xba\x94\xe6\x9c\x89\xe7\x9a\x84\xe7\x94\x9f\xe6\xb4\xbb\xe5\x93\xb2\xe5\xad\xa6\xe4\xba\x86\xe3\x80\x82" 4.将key导出到文件时会发现是中文输出 [root@redis-1 ~]# cat test2.txt 当你能念书时,你念书就是;当你能做事时,你做事就是;当你能恋爱时,你再去恋爱;当你能结婚时,你再去结婚。环境不许可时,强求不来;时机来临时,放弃不得。这便是一个人应有的生活哲学了。 5.解决redis显示中文乱码 [root@redis-1 ~]# redis-cli --raw get test 当你能念书时,你念书就是;当你能做事时,你做事就是;当你能恋爱时,你再去恋爱;当你能结婚时,你再去结婚。环境不许可时,强求不来;时机来临时,放弃不得。这便是一个人应有的生活哲学了。
3.4.对整数的value增值
redis支持对一些整数的value的值增加和减少,前提是value值必须为整数
整数增值使使用INCR命令,INCR每次加1,INCRBY可以根据自己的需求进行增加
1.创建一个整数的key,将100增加到103 [root@redis-1 ~]# redis-cli 127.0.0.1:6379> set num1 100 OK 127.0.0.1:6379> INCR num1 (integer) 101 127.0.0.1:6379> INCR num1 (integer) 102 127.0.0.1:6379> INCR num1 (integer) 103 127.0.0.1:6379> get num1 "103" 2.使用INCRBY自定义增加值,将103加到113 [root@redis-1 ~]# redis-cli 127.0.0.1:6379> get num1 "103 127.0.0.1:6379> INCRBY num1 10 (integer) 113 127.0.0.1:6379> get num1 "113"
3.5.对整数的Value进行减值
DECR每次减1,DECRER可以自定义每次减的值
1.使用DECR每次减1 [root@redis-1 ~]# redis-cli 127.0.0.1:6379> get num1 "113" 127.0.0.1:6379> DECR num1 (integer) 112 127.0.0.1:6379> DECR num1 (integer) 111 2.使用DECR每次减10 [root@redis-1 ~]# redis-cli 127.0.0.1:6379> get num1 "111" 127.0.0.1:6379> DECRBY num1 11 (integer) 100 127.0.0.1:6379> get num1 "100"
3.6.查看key类型
127.0.0.1:6379> type k1 //类型为字符串 string 127.0.0.1:6379> type num1 //即使值为整数也属于string,因为是由set创建的key string 命令行查看 [root@redis-1 ~]# redis-cli type k1 string
3.7.使用mset创建多个key
语法格式:mset key1 value2 key2 value2
127.0.0.1:6379> MSET k3 v3 k4 v4 k5 v5 k6 v6 OK 127.0.0.1:6379> keys * 1) "test" 2) "k2" 3) "k4" 4) "num1" 5) "k1" 6) "num" 7) "k5" 8) "k3" 9) "k6" 在命令行创建 [root@redis-1 ~]# redis-cli MSET k3 v3 k4 v4 k5 v5 k6 v6 OK
3.8.使用mget查看多个key的值
语法格式:mget key1 key2 key3
127.0.0.1:6379> MGET k1 k2 k3 k4 k5 k6 1) "v1" 2) "v2" 3) "v3" 4) "v4" 5) "v5" 6) "v6" 在命令行查看 [root@redis-1 ~]# redis-cli MGET k1 k2 k3 k4 k5 k6 1) "v1" 2) "v2" 3) "v3" 4) "v4" 5) "v5" 6) "v6"
3.9.查看一个key是否存在
语法格式 exists key
返回结果为1表示存在,返回结果为0表示不存在
[root@redis-1 ~]# redis-cli 127.0.0.1:6379> EXISTS k10 (integer) 0 127.0.0.1:6379> EXISTS k6 (integer) 1 命令行创建 [root@redis-1 ~]# redis-cli exists k6 (integer) 1
3.10.删除一个key
语法格式:del key
返回结果为1表示删除成功,返回结果为0表示不存在
[root@redis-1 ~]# redis-cli 127.0.0.1:6379> del k6 (integer) 1 127.0.0.1:6379> del k6 (integer) 0 命令行 [root@redis-1 ~]# redis-cli del k6 (integer) 0