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.conf 内容说明

三.执行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> 

 

posted @ 2018-09-03 00:29  生心无住  阅读(204)  评论(0编辑  收藏  举报