redis 简单教程
一.redis的安装
安装环境:centos 7
1) 下载redis
这里我们下载的是redis-4.0.10.tar.gz
2)将redis tar包移动至 /usr/local
执行如下命令
cd /usr/local tar -zxvf redis-4.0.10.tar.gz cd redis-4.0.10/ make
make 结束后/usr/local/redis-4.0.10/src会出现redis-server和redis-cli,如下图
3)启动redis
治理我们使用redis的默认配置文件
./redis-server ../redis.conf
再打开一个终端,使用redis-cli 客户端程序和redis server 交互
[hadoop@ns1 src]$ ./redis-cli 127.0.0.1:6379> set name jason OK 127.0.0.1:6379> get name "jason" 127.0.0.1:6379>
三.执行redis命令
1)本机执行命令
[hadoop@ns1 src]$ cd /usr/local/redis-4.0.10/src/ [hadoop@ns1 src]$ ./redis-cli 127.0.0.1:6379>
2)远程执行redis命令
将redis-cli copy到远程计算机,然后在远程计算机执行 redis-cli -h host -p port -a password
[hadoop@dn1 ~]$ ./redis-cli -h ns1 -p 6379 Could not connect to Redis at 192.168.100.9:6379: Connection refused
咦,为什么没有连接上,查看redis.conf ,原来redis绑定的ip是 127.0.0.1 修改为
bind 192.168.100.9
[hadoop@dn1 ~]$ ./redis-cli -h ns1 -p 6379 ns1:6379>
成功
四.redis 数据类型
1.String
1)set/get
ns1:6379> set key value OK ns1:6379> get key "value" ns1:6379> set key new-value OK ns1:6379> get key "new-value"
2)mget 一次获取多个值
ns1:6379> set key2 value2 OK ns1:6379> mget key key2 1) "new-value" 2) "value2" ns1:6379>
3)mset
ns1:6379> mset key1 "hello" key2 "world" OK ns1:6379> mget key1 key2 1) "hello" 2) "world"
4)append 在原有字符串后追加
ns1:6379> append key1 " jason" (integer) 11 ns1:6379> get key1 "hello jason"
2.hash
1)hmset 向set中设置值
ns1:6379> hmset class 1 "jason" OK ns1:6379> hmset class 2 "dong" OK
其中 class 是map的名字,kv对为 1->"jason" 2->"dong"
2)hdel 删除hash 中某个key
ns1:6379> hdel class 1 (integer) 1
3)hexists 查看hash是否存在该key
s1:6379> hexists class 2 (integer) 1
4)hget 获取hash中某key的值
ns1:6379> hget class 2 "dong"
5)hgetall 获取hash中所有的内容
ns1:6379> hset class 1 "jason" (integer) 1 ns1:6379> hset class 3 "fei" (integer) 1 ns1:6379> hgetall class 1) "2" 2) "dong" 3) "1" 4) "jason" 5) "3" 6) "fei" ns1:6379>
6)hkeys 获取hash 中所有的key
ns1:6379> hkeys class 1) "2" 2) "1" 3) "3"
3.list
1)lpush 向列表头部插入元素
ns1:6379> lpush mylist redis (integer) 1 ns1:6379> lpush mylist mongo (integer) 2
2)rpush 向列表尾部插入元素
s1:6379> rpush mylist hive (integer) 4
3)lrange 获取列表指定范围内的元素
3) "hive" ns1:6379> lrange mylist 0 10 1) "mysql" 2) "mongo" 3) "redis" 4) "hive"
4)lrem 移除列表中的元素
ns1:6379> lrem mylist 2 hive // 从头部开始移除两个 hive元素 (integer) 2 ns1:6379> lrem mylist -2 hive // 从尾部开始移除两个hive元素 (integer) 2
5)lset 在指定的index出插入元素
1) "one" 2) "1" 3) "mysql" 4) "mongo" 5) "redis"
4.set
1)sadd 向集合中添加元素
ns1:6379> sadd myset 1 (integer) 1 ns1:6379> sadd myset 1 (integer) 0 ns1:6379> smembers myset 1) "1"
2)srem 移除set中的一个或多个元素
ns1:6379> sadd myset 2 (integer) 1 ns1:6379> sadd myset 3 (integer) 1 ns1:6379> sadd myset 4 (integer) 1 ns1:6379> srem myset 2 (integer) 1 ns1:6379> smembers myset 1) "1" 2) "3" 3) "4"
3)smembers 查看set中的元素
ns1:6379> smembers myset 1) "1" 2) "3" 3) "4"
5.zset(sorted set)
1)zadd 向zset中添加元素
ns1:6379> zadd myzset 1 mysql (integer) 1 ns1:6379> zadd myzset 2 oracle (integer) 1
上述插入语句中的 1 , 2 为一个double 类型的score,zset 会根据这个score排序,类似我们上学时候根据分数排名次
2)zrem 移除zset 中的某个或某几个元素
ns1:6379> zadd myzset 3 hive (integer) 1 ns1:6379> zadd myzset 4 hbasse (integer) 1 ns1:6379> zrange myzset 0 -1 1) "mysql" 2) "oracle" 3) "hive" 4) "hbasse" ns1:6379> zrem myzset hive (integer) 1
3)zrange 查看zset对应index范围的元素
ns1:6379> zrange myzset 0 -1 1) "mysql" 2) "oracle" 3) "hbasse"
五.其他问题
1.NOAUTH Authentication required.
输入密码即可
auth "passwd"
2.显示所有的key
ip:port> keys *
(empty list or set)
3.清除所有数据
ip:port> flushall OK ip:port> keys * (empty list or set) ip:port>