Redis数据库基本操作

#redis 基本操作

进入redis

redis-cli   

#不能进入,就安装:
sudo apt-get update
sudo apt-get install redis-server

exit		#退出
Select 命令用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。
#默认使用 0 号数据库   默认开16个库
SELECT 1 	# 使用 1 号数据库,Redis 现在的命令提示符多了个 [1]

##redis五种数据类型、及操作

  • string 字符串
  • list 列表
  • hash 哈希
  • set 集合
  • sorted sets 有序集合

string

string 类型是 redis 最基本的类型, string 类型,一个 key 对应一个 value,一个 value 最大能存储512MB的数据。
  • set key value

    • 设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
    • set name ‘juhao‘
  • get key

    • 返回key的值,若key不存在则返回nil

      ?

      mset key value [key value..]

    • 为多组key设置值,该操作为原子操作,要么一组都设置成功,要么一组都设置失败;
    • mset username ‘root‘ password ‘123‘ name ‘juhao‘

      ?

  • mget key [key...]
    • 返回一个或多个key的值,若key不存在返回nil,若key存在但不是字符串返回nil
    • mget username, password, name		#有,号会被认为是key的一部分
      mget username password name
      

      ?

  • append key value
    • 将指定的值追加到key末尾,若key不存在,则创建并赋值,返回追加后的字符串长度
    • append name love
  • 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 juhao #user { name:juhao}
      
  • hmset key field1 value1[field value...]
    • 同时设置多个
    • # user {name:juhao , age:18}
      hmset user name juhao 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

 

原文地址:https://www.cnblogs.com/fancyblog/p/11405102.html

时间: 2024-10-13 04:13:19

Redis数据库基本操作的相关文章

Redis数据库及其基本操作

Redis 是一个高性能的key-value数据库, 支持主从同步, 完全实现了发布/订阅机制, 因此可以用于聊天室等场景. 主要表现于多个浏览器之间的信息同步和实时更新. 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set –有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,red

redis数据库操作的C++简单封装

用c++简单封装了redis的基本操作(hiredis) 接口包括:①链接和断开连接.②设置键值对(set).③查询键值对(get).④删除键值对(del).⑤将所有键显示出来 若任何一处发生错误,返回对应的错误状态码,同时可以调用getErrorMsg()查看错误信息 所有码包括: M_REDIS_OK = 0, //执行成功 M_CONNECT_FAIL = -1, //连接redis失败 M_CONTEXT_ERROR = -2, //RedisContext返回错误 M_REPLY_ER

centos6.5 64 源码安装redis服务,建立可远程连接的redis数据库

安装环境:centos6.5 64位 使用的包:redis-2.8.19.tar.gz  tcl8.6.3-src.tar.gz 包的下载链接:http://downloads.sourceforge.net/tcl/tcl8.6.3-src.tar.gz http://download.redis.io/releases/redis-2.8.19.tar.gz 本次安装的目录/home/hadoop/redis为任意目录 代码实现: 1,安装需要的支持环境 su root cd /home/h

Ubuntu上使用Redis数据库存储SessionID并实现Session共享

p { margin-bottom: 0.1in; direction: ltr; color: #00000a; line-height: 120%; text-align: left; orphans: 2; widows: 2 } p.western { font-family: "Liberation Serif", serif; font-size: 12pt } p.cjk { font-family: "Noto Sans CJK SC Regular"

3.22数据库基础知识:①数据类型②基本规则③数据库基本操作,增删改库,表

数据库:①数据类型②基本规则③数据库基本操作,增删改库,表 DATABASE 数据库Relational Database 关系型数据库column 列 row行Primary Key 主键 Foreign Key 外键DBMS 数据库管理系统 Database Management SystemRDBNS 关系型数据库管理系统SQL Structured Query Language 结构化查询语言SQL 分为:DDL DQL DML DCL 一.数据类型:1.整数型:INT BIGINT2.

Redis数据库各种数据结构的内部实现。

Redis数据库是一种非关系型数据库,基于key/value对,运行时加载到内存,对value支持虚拟内存, 支持多种数据结构,支持持久化,以性能著称,可用于存储,缓存,消息队列等场景.主要介绍下Redis运行时维护的数据结构,以展示其工作方式. 1.总体设计. 首先,Redis没有MySQL那样的索引机制,因为其内建一个基于hash的字典,如下图: Redis 计算哈希值和索引值的方法如下: # 使用字典设置的哈希函数,计算键 key 的哈希值 hash = dict->type->hash

CentOS7安装redis数据库及php-redis扩展

redis 首先把redis安装到服务器中 1.wget http://download.redis.io/redis-stable.tar.gz 下载redis源码 2. tar xvzf redis-stable.tar.gz 解压 3.cd redis-stable 4.make   make的时候可能出现问题,我的就出现了异常 异常一: make[2]: cc: Command not found 异常原因:没有安装gcc 解决方案:yum install gcc-c++ 异常二: zm

node.js应用Redis数据库

node.js下使用Redis,首先: 1.有一台安装了Redis的服务器,当然,安装在本机也行 2.本机,也就是客户端,要装node.js 3.项目要安装nodejs_redis模块 注意第 3 点,不是在本机安装就行了,而是说,要在项目中安装(引用). 方法是,DOS窗口,在项目目录下,输入 npm install redis 这样就将nodejs_redis下载一份,放到当前目录下了.看看,多了一个文件夹:node_modules\redis 编写以下代码,保存到当前目录下\hello.j

NoSQL数据库之Redis数据库:Redis的介绍与安装部署

 NoSQL(NoSQL = Not Only SQL),它指的是非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显的力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展. NoSQL的特点: 特点一: 是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说遵循SQL标准.ACID属性.表结构等等,这