redis基本操作
进入reids
redis-cli #不能进入,就安装: sudo apt-get update sudo apt-get install redis-server exit #退出
Select 命令用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。 #默认使用 0 号数据库 默认开16个库 SELECT 1 # 使用 1 号数据库,Redis 现在的命令提示符多了个 [1]
##redis五种数据类型、及操作
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
| 字符串 | string | 
| 列表 | list | 
| 哈希 | hash | 
| 集合 | set | 
| 有序集合 | sorted sets(zset) | 
string
string 类型是 redis 最基本的类型, string 类型,一个 key 对应一个 value,一个 value 最大能存储512MB的数据。  
- set key value
 
-  
  
-  
设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
 -  
set name 'bear' 
 -  
 -  
get key
-  
返回key的值,若key不存在则返回nil
mset key value [key value..]
 -  
为多组key设置值,该操作为原子操作,要么一组都设置成功,要么一组都设置失败;
 -  
mset username 'root' password '123' name 'bear'
 
 -  
 
-  
mget key [key...]
-  
返回一个或多个key的值,若key不存在返回nil,若key存在但不是字符串返回nil
 -   
mget username, password, name #有,号会被认为是key的一部分
mget username password name 
 -  
 - append key value 
  
-  
将指定的值追加到key末尾,若key不存在,则创建并赋值,返回追加后的字符串长度
 -  
append name bear 
 -  
 
- ttl key 
  
-  
返回key的剩余生存时间, -1 表示永久存在, -2表示不存在
 
 -  
 
- set key value ex seconds  
  
-  
设置 key的同时,设置过期时间(单位:秒) key 过期后将不再可用,会被系统自动删除。
 -   
set age 18 ex 20 或 setex key seconds value 例: ( setex sex 20 '男' )
 
 -  
 -  
persist key
 -  
移除指定key的生存时间,成功返回1,若key不存在或不存在生存时间时返回0;
 
###全局key操作
- rename key newkey 改名 
  
-  
当key和newkey相同或者key不存在时返回一个错误,当newkey已存在时则会覆盖;
 -   
keys * # 查看所有的key  del key # 删除 返回成功的个数  exists key # 查看key是否存在 返回存在个个数  type key # 查看key类型  expire key seconds #设置过期时间 persist key #移除过期时间 flushdb #删除当前数据库中的所有key  flushall #删所有
 
 -  
 
list
列表的元素类型为string,
按照插入顺序排序
在列表的头部或者尾部添加元素  
-  
lpush key value[value...]
-  
在头部插入数据
 -   
lpush key value #例 lpush my_list a b c d -  
在尾部添加数据
 -   
rpush key value #例 rpush my_rlist a b c d 
 -  
 
-  
lindex key index
-  
返回列表中元素的值。index从0开始,当index超出索引时返回null
 -   
lindex my_list 3 #查看第三个 
 -  
 -  
lrange key start stop
-  
查看索引范围内元素的值
 -   
lrange my_list 0 -1 #查看所有值
 
 -  
 
-  
llen key
-  
返回列表的长度
 
 -  
 
-  
lset key index newvalue
-  
指定索引号进行修改
 - lset my_list 0 'hello'
 
 -  
 
-  
删除
-  
lpop key 删除左边第一个
 -  
rpop my_list
 -  
rpop key 删除右边第一个
 -  
rpop my_list
 -  
lrem key count value
-  
删除指定数量的value值
 -   
rpush test_list c a a b b c d e a d f m c  #count > 0 从左往右 删除数量为count的value 例 : lrem test_list 2 a lrange test_list 0 -1  #count = 0 删除所有的 value 例 : lrem test_list 0 d,  #count < 0 从右往左 删除数量为count的value 例 : lrem test_list -2 c
 
 -  
 
 -  
 
hash
是一个键值(key=>value)对集合。是string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象 field 域 value 值
设置/修改
-  
hset key field value
-  
将field-value设置到hash表中,若key不存在会新建hash表再赋值,已存在则会覆盖;
 -   
hset user name bear #user { name:bear}
 
 -  
 -  
hmset key field1 value1[field value...]
-  
同时设置多个
 -   
# user {name:bear , age:18} hmset user name bear age 18
 
 -  
 
查看
-  
hget key field
-  
获取
value -  
hget user name 
 -  
 -  
hmget key field[field...]
-  
获取多个
value -  
hmget user name age 
 -  
 -  
hvals key
-  
获取全部
value 
 -  
 -  
hkeys key
-  
获取所有的
field 
 -  
 
-  
hgetall key
-  
获取全部
field和value 
 -  
 -  
hlen key
-  
查看有几个键值对
 
 -  
 
-  
hexists key field
-  
判断hash表中指定域是否存在,返回1,若key或field不存在则返回0;
 
 -  
 
删除
-  
hdel key field
-  
hdel user name 
 -  
 
set
元素为string类型
无序集合
元素具有唯一性,不重复   
-  
sadd key member [member...] 增加元素
-  
将一个或多个member元素加入到集合key中,若member已存在那么会忽略此元素,
 -  
sadd my_set m n b v c x z b
 
 -  
 -  
scard key
-  
返回集合key中元素的个数;
 
 -  
 -  
smembers key
-  
获取集合中所有元素
 
 -  
 
-  
sismember key member 判断集合存在某个值
-  
判断member在key中是否已存在, 返回0或1
 -  
sismember my_set b
 
 -  
 
-  
删除
-  
srem key member [member...]
-  
移除一个或多个元素,不存在的member会被忽略,返回被移除元素个数
 -  
srem my_set a b n 
 -  
 -  
spop key 随机删除
-  
移除并返回集合中的一个随机元素,当key不存在时返回NULL
 
 -  
 
 -  
 
-  
交集
# sinter key1 key2 .. 例 sinter my_set my_set2把 key1 key2的交集合并到
newkey# sinterstore newkey key1 key2 例 sinterstore new_set my_set my_set2 -  
并集
# sunion key1 key2 ... 例 sunion my_set my_set2把 key1 key2的并集合并到
newkey# sunionstore newkey key1 key2 例 sunionstore new_set2 my_set my_set2 -  
差集
# sdiff key1 key2 sdiff my_set my_set2把 key1 key2的差集合并到
newkey# sdiffstore newkey key1 key2 例 sdiffstore new_set3 my_set my_set2 
zset
类似于Set,不同的是Sorted中的每个成员都分配了一个分数(Score)用于对其中的成员进行排序(升序)。
zset的成员是唯一的,但分数(score)却可以重复。  
添加/修改
-  
zadd key score member[ [score member] ..]
-  
设置, 存在就更新
 -   
zadd my_zset 1 'one' zadd my_zset 2 'tow'  zadd my_zset 10 one 20 two 30 three 40 four 50 'five'
 
 -  
 
查看
-  
zscore key member
-  
查看score值
zscore my_zset two
 
 -  
 -  
zrange key start stop[withscores]
-  
按索引返回key的成员, withscores表示显示score
 -  
zrange my_zset 0 -1 #显示全部 
 -  
 
-  
zrangebyscore key min max
-  
返回集合中 score 在给定区间的元素
 -  
zrangebyscore zset 10 30 
 -  
 
删除
-  
zrem key member [member...]
-  
移除有序集合中的一个或多个元素,若member不存在则忽略;
 -  
zrem my_zset two 
 -  
 
-  
zremrangebyrank min max :
-  
删除集合中索引在给定区间的元素
 
zremrangebyrank my_zset 1 3 -  
 -  
zremrangebyscore min max :
-  
删除集合中 score 在给定区间的元素
 
zremrangebyscore my_zset 10 30 -  
 
redis配置
vim /etc/redis/redis.conf #配置文件地址 port 6379 # 默认端口 logfile /var/log/redis.log # 日志文件位置 dbfilename dump.rdb # RDB持久化数据文件名 , dir /var/lib/redis #指定本地数据库存放目录 bind 0.0.0.0 # 指定IP进行监听 requirepass yourpassword #密码 save 900 1 #这三个是持久化,注释掉就关掉持久化 save 300 10 save 60 10000
启动/停止/重启命令
/etc/init.d/redis-server stop /etc/init.d/redis-server start /etc/init.d/redis-server restart
设置密码
config get requirepass //获取当前密码 #默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 redis 服务 进入配置文件 vim /etc/redis/redis.conf 找到requirepass 设置密码 vim 查找 /requirepass 按n查找下一个 requirepass yourpassword //此处注意,行前不能有空格 重启redis redis-cli shutdown 进入在添加 auth 123456 登陆的时候加上密码 redis-cli -a 123456
                    
													
													
													
													
	
		
